我希望该事件仅在鼠标单击时起作用,怎么会发生这种情况?
我使用jqwitgets网格,当我用鼠标选择一行时会触发我用于网格的这个事件。
$(document).on("rowselect", "#jqxgrid", function (e) {
e.preventDefault();
});
但是此行选择会在输入事件上再次触发
$('#INPUT_NAME').off('keyup');
$(document).on("keyup", "#INPUT_NAME", function (e) {
e.stopImmediatePropagation();
$("#jqxgrid").jqxGrid('selectrow', 0);
$('#jqxgrid').jqxGrid('focus');
});
$("#jqxgrid").jqxGrid('selectrow', 0);
输入事件中的这一行触发网格行选择事件,我想防止这种情况发生。
谢谢你
$(document).on("rowselect", ".grid", function (e) {
e.preventDefault();
if(e.type == "keyup")
return false;
我使用了
e.stopImmediatePropagation();
,但仍然触发了“rowselect”。
当我用e.type查看时,它显示了当前事件的触发
e.type="rowselect"
,但我需要前一个事件的类型,即e.type="keyup"
,但我找不到前一个类型
keyup 就是一个例子。许多类似的事件都会影响
"rowselect"
事件。
还有我的最后一个问题 当我用鼠标选择行时,为什么 rowunselect 在 rowselect 事件之后自动运行?我怎样才能防止这种情况? 我添加了
e.stopImmediatePropagation();
,但没有用,谢谢
考虑以下因素:
https://jsfiddle.net/Twisty/z2emuvt7/
JavaScript
$("#jqxgrid").on("mousedown mouseup click rowselect rowunselect", function(e) {
e.preventDefault();
e.stopImmediatePropagation();
console.log(e.type);
});
结果
mousedown
rowselect
rowunselect
mouseup
click
您可以在这里看到,当用户选择一行时会触发多个事件。这包括
click
事件。在不深入挖掘的情况下,我猜测有很多与 mousedown
和 mouseup
相关的东西与选择和拖动相关。
我看不出有什么好方法来完成你想做的事情。