Почему всегда выводит 2? Я думаю что в условии дело, как проверять key какой нажал пользователь?
$.contextMenu({
selector: '.context-menu-one',
items: {
open: {name: 'Открыть', icon: 'open'},
save: {name: 'Сохранить', icon: 'save'},
},
callback: function(key, options) {
if(key == open){
$('#res').html('Выбрана команда 1');
}
else{
$('#res').html('Выбрана команда 2');
}
}
});
документация вам гласит следующее:
callback
Specifies the default callback to be used in case an item does not
expose its own callback. The default callback behaves just like
item.callback.
Что означает, что глобальное свойство callback определяет действие по умолчанию, когда элементы коллекции items не имеют своего собственного обработчика.
Для элементов items обработчик объявляется следующим образом
Specifies the callback to execute if clicked on.
The Callback is executed in the context of the triggering object. The
first argument is the key of the command. The second argument is the
options object. The Callback may return false to prevent the menu from
being hidden.
отсюда следует, что первый аргумент вашего обработчика это ключ команды. Следовательно, в вашем коде надо проверять строковое значение ключа key == "open", а не непонятную переменную open:
callback: function(key, options) {
if(key == "open"){
....
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости