#javascript #jquery #contextmenu
#javascript #jquery #контекстное меню
Вопрос:
Прежде всего, спасибо за всю помощь по моим предыдущим вопросам. Ну, мой вопрос касается контекстного меню jQuery. У меня есть контекстное меню, которое работает отлично, показывая все различные параметры, однако мне нужно отключить несколько параметров (скажем, пункт B в коде ниже), и я не могу этого сделать. Вот как выглядит код,
У меня есть массив menuitems, который содержит все элементы контекстного меню, например,
function createMenuItems() {
var menuitems = {};
menuitems['Item A'] = {
click: function() {
// Some Code
}
};
menuitems['Item B'] = {
click: function() {
// Some Code
}
};
menuitems['Item C'] = {
click: function() {
// Some Code
}
};
return menuitems;
}
Эта функция вызывается следующим образом,
menuitems = createMenuItems();
Теперь контекстное меню создается с помощью следующей команды,
element.children("a").contextMenu("myMenu",menuitems,
{
disable_native_context_menu: true
});
Любая помощь будет высоко оценена, большое спасибо и с нетерпением ждем ваших советов экспертов
С уважением
Ответ №1:
Похоже, что вы используете http://code.google.com/p/youpivot/source/browse/trunk/chromeextension/include/jquery.contextmenu.js?r=46
Насколько я могу судить по исходному коду, «отключено» не поддерживается. Вы можете попробовать и добавить его самостоятельно, например:
menuitems['Item B'] = {
click: function() {
// Some Code
},
disabled: true
};
А затем в файле плагина добавьте это:
if (item_options.disabled)
menuItem.attr("disabled", "disabled");
после строки 39 в источнике, предоставленном ссылкой (я предполагаю, что ваш файл может отличаться от этого, поэтому вы можете просто найти похожее место).
Надеюсь, это поможет.
Комментарии:
1. Я вдруг понял, что элемент меню — это li, поэтому отключение ничего не даст. Вам нужно if (item_options.disabled) { MenuItem.addClass(«элемент меню-отключен»); } else { MenuItem.appendTo(menu).bind(‘click’, функция (e) { item_options.click($(this).parent().data(«вызывающий»)); e.preventDefault(); }); } Таким образом, вы в основном перемещаете привязку щелчка при условии, что элемент не отключен, а для отключенного элемента вы добавляете class .menu-item-disabled, который вы можете сделать, скажем .menu-item-disabled {color: серый}