Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery上下文菜单获取单击项_Javascript_Jquery_Jquery Selectors_Contextmenu - Fatal编程技术网

Javascript jQuery上下文菜单获取单击项

Javascript jQuery上下文菜单获取单击项,javascript,jquery,jquery-selectors,contextmenu,Javascript,Jquery,Jquery Selectors,Contextmenu,我正在使用关联菜单。我就是这样做的: $('#contacts tbody tr').contextMenu('myMenu1', { bindings: { 'copy': function(t) { alert('Trigger was '+t.id+'\nAction was Copy'); }, 'delete': function(t) { alert('Trigger wa

我正在使用关联菜单。我就是这样做的:

$('#contacts tbody tr').contextMenu('myMenu1', {
    bindings: {
        'copy': function(t) {
             alert('Trigger was '+t.id+'\nAction was Copy');
         },

        'delete': function(t) {
             alert('Trigger was '+t.id+'\nAction was Delete');
        }
    },             
});
我的问题是,如何获取单击的tr项的内容?我试过了

$(t.target).html()
但它返回
null
。有什么想法吗


编辑:下面是一个不熟悉该插件的示例,但从外观上看,您应该能够编写:

$("#" + t.id).html();
但是对于大多数jQuery插件,您应该能够做到这一点:

$(this).html();
'copy':函数(t){
'delete':函数(t){


下面是一个工作示例:

我猜您的
标记没有
id
属性


即使
没有ID,这仍然有效:


更新了您的JSFIDLE:


你在做
$(t.target).text()
而你应该做
$(t).text()

我想这就是你想要的:

<script type="text/javascript"> 
$(function(){
$.contextMenu({
    selector: '.flexme1 tbody tr', 
    callback: function(key, options) {
        alert("Clicked on " + key + " on element " + options.$trigger.attr('id').substr(3));            
    },
    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: "quit"}
    }
});

$('.flexme1 tbody tr').on('click', function(e){
    console.log('clicked', this);
})
});
</script>

$(函数(){
$.contextMenu({
选择器:'.flexme1 tbody tr',
回调:函数(键、选项){
警报(“单击元素上的“+key+”和选项$trigger.attr('id').substr(3));
},
项目:{
“编辑”:{名称:“编辑”,图标:“编辑”},
“切割”:{名称:“切割”,图标:“切割”},
“复制”:{名称:“复制”,图标:“复制”},
“粘贴”:{名称:“粘贴”,图标:“粘贴”},
“删除”:{名称:“删除”,图标:“删除”},
“sep1”:“-----------”,
“退出”:{名称:“退出”,图标:“退出”}
}
});
$('.flexme1 tbody tr')。在('click',函数(e)上{
log('clicked',这是);
})
});
它与Flexigrid集成…对我来说很好


显然,我还有一些额外的选择。

这真的很模糊,请包括您的html,甚至更好地创建一个JSFIDLE!显示一些html,我猜您正在做一些不正常的事情这里是示例代码,当我将id添加到您的tr标记时,这是副本弹出窗口中返回的值。与文档建议的不完全一样。为什么要链接(插件)是否重定向到厨房网站?这怎么不是选定的答案?最简单的解决方案。只需使用选项。$trigger。
 alert('content is ' + $(t).text() + '\nAction was Delete');
<script type="text/javascript"> 
$(function(){
$.contextMenu({
    selector: '.flexme1 tbody tr', 
    callback: function(key, options) {
        alert("Clicked on " + key + " on element " + options.$trigger.attr('id').substr(3));            
    },
    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: "quit"}
    }
});

$('.flexme1 tbody tr').on('click', function(e){
    console.log('clicked', this);
})
});
</script>