觸發我有一個jQuery的功能,象這樣:退出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的文本菜單」。
我想要的是能夠右鍵單擊並在右鍵菜單中顯示正確的座標。問題是,在創建第一個上下文菜單之後,立即創建第二個(右鍵點擊其他地方)將不會顯示更新後的座標。走出第一個上下文菜單(通過左鍵單擊外部或選擇一個選項),然後打開新的上下文菜單將顯示更新後的座標。
問題的更深層次的檢驗表明,控制檯不記錄任何如果你不斷點擊右鍵打開上下文菜單,當它應該被記錄的新位置。換句話說,只有一次檢測到右鍵單擊並且不會再次檢查該功能,直到發生不同的輸入爲止。
我已經嘗試使用.click事件,而不是(左鍵單擊)但發生同樣的問題。我也嘗試將jquery.contextMenu.js中的重定位標誌更改爲false,假設上下文菜單不是重建,但也沒有改變任何內容。
任何幫助將得到廣泛讚賞。
你能提供的jsfiddle,所以我們可以可視化的問題呢? – Raptus
@ Raptus我原本應該這樣做.. [http://jsfiddle.net/Ruxb7/](http://jsfiddle.net/Ruxb7/)。另外,通過刪除菜單重新定位的部分代碼,我實現了更改上下文菜單的JavaScript文件的相當混亂的解決方案。不幸的是,這會導致上下文菜單關閉,然後您需要再次右鍵單擊重新打開它。所以它不能解決根本問題,但它確保用戶不會從多重點擊問題中獲取不正確的信息。 – ganon