可能我会为这个问题得到投票但是。在这里。
我正在使用datatables。是否可以在示例here上显示右键单击的工作编辑和删除按钮?我不擅长jquery。如果有人可以发送样品,我将不胜感激。我发现的唯一工作示例是this。但这不是我想要实现的目标。
点击事件的示例:https://datatables.net/examples/advanced_init/events_live.html
答案 0 :(得分:2)
以下是您第一个示例中使用的javascript的修改:
$(document).ready( function () {
var oTable = $('#example').dataTable({
"bJQueryUI": true,
"sDom": 'l<"H"Rf>t<"F"ip>'
});
$(document).contextmenu({
delegate: ".dataTable td",
menu: [
{title: "Delete", cmd: "delete"},
{title: "Edit", cmd: "edit"}
],
select: function(event, ui) {
switch(ui.cmd){
case "delete":
$(ui.target).parent().remove();
break;
case "edit":
$(ui.target).html(
$('<input type="text"/>').val(
$(ui.target).text()
).bind( "keypress focusout",function (e) {
if (e.type=="keypress"?(e.keyCode ==13?true:false):true) {
$(this).parent().html(
$(this).val()
);
}
})
);
break;
}
},
beforeOpen: function(event, ui) {
var $menu = ui.menu,
$target = ui.target
ui.menu.zIndex(0);
}
});
} );
工作示例已在此处发布:
答案 1 :(得分:1)
您可以在drawCallback
处理程序中初始化上下文菜单,并从id
自己的回调中点击的行中检索$.contextMenu
:
drawCallback : function() {
$.contextMenu({
selector: 'tbody tr td',
callback: function(key, options) {
var id = options.$trigger[0].parentElement.id;
var m = "clicked: " + key + ' ' + id;
window.console && console.log(m) || alert(m);
/*
switch (key) {
case 'delete' :
yourDeleteMethod(id); break;
case 'edit' :
yourEditMethod(id); break;
...
}
*/
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
copy: {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function(){
return 'context-menu-icon context-menu-icon-quit';
}}
}
});
},
更新小提琴 - &gt;的 http://jsfiddle.net/0f9Ljfjr/900/ 强>
由于选择器设置为tbody tr td
,id
始终可以找到options.$trigger[0].parentElement.id
。现在,您只需要响应您需要的操作,并使用检索到的id
调用您自己的方法。