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>