我有一个像这样的 jquery 函数:
$(function(){
$('.viewArea').mousedown(function(event) {
if(event.which === 3){ // On right click
pos = ("(" + event.pageX + "," + event.pageY + ")");
console.log(pos); // Log the xy coords of click to console
$.contextMenu("destroy"); // Unregister previous context menu
$.contextMenu({ // Create new context menu
selector: '.viewArea',
callback: function(key, options){
var m = "clicked: " + key;
window.console && console.log(m);
},
items: {
"pos":{name:pos,disabled:true}, // have pos in context menu
"ci1":{name:"ContextMenu 1"},
"ci2":{name:"ContextMenu 2"}
}
});
}
})
});
该函数使用jquery插件“jQuery contextMenu”。
我想要的是能够右键单击并在上下文菜单中显示位置坐标。问题是,创建第一个上下文菜单后,立即创建第二个上下文菜单(右键单击其他位置)将不会显示更新的坐标。退出第一个上下文菜单(通过左键单击外部,或选择一个选项),然后打开一个新的上下文菜单将显示更新的坐标。
对问题的更深入检查表明,如果您连续右键单击打开上下文菜单,控制台不会记录任何内容,而控制台应该记录新位置。换句话说,它只检测一次右键单击,并且不会再次执行该函数,直到发生不同的输入为止。
我尝试使用 .click 事件代替(并用左键单击),但出现了同样的问题。我还尝试将 jquery.contextMenu.js 中的重新定位标志更改为 false,假设上下文菜单没有重建,但这似乎也没有改变任何内容。
任何帮助将不胜感激。
最佳答案
该插件的作者在这里......
我不确定你到底想在那里实现什么。但为了帮助您找到正确的方向,我修复了您的示例,以使用 position
函数调用位置显示的更新。
关于jquery - mousedown事件触发退出jquery函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24531236/