我有:
$('#externalContactsGrid').on('mouseup', '.k-grid-content, tr', function(e) {
alert('test')
...
})
如果鼠标在任一元素上,而不是两次,我希望它触发一次。所以我希望它在'.k-grid-content'或'tr'上启动,'tr'优先。
tr元素在.k-grid-content。
中我还需要在e.which == 3时显示浏览器上下文菜单。
答案 0 :(得分:1)
尝试使用 .stopPropagation() 停止事件冒泡
$('#externalContactsGrid').on('mouseup', '.k-grid-content, tr', function(e) {
e.stopPropagation();
alert('test');
});
答案 1 :(得分:0)
如果鼠标已启动,我希望它能触发一次
如果大小写为1
,那么您可能希望使用.stopPropagation()
,因为 tr元素位于.k-grid-content 。
因为当事件绑定到任何子/孙元素时,事件往往会冒泡dom意味着事件会冒泡到它的父元素。所以如果父有任何绑定事件,那么也会被解雇。
$('#externalContactsGrid').on('mouseup', '.k-grid-content, tr', function(e) {
e.stopPropagation(); // stops the event to bubbleup the dom
alert('test')
如果案例为2
,那么您可能想要使用.one()
$('#externalContactsGrid').one('mouseup', '.k-grid-content, tr', function(e) {
我还需要浏览器上下文菜单,以便在 e.which == 3 时不显示。
为此:
if(e.which == 3){
$(document).off('contextmenu');
}