jQuery:dblclick 上的触发事件不起作用(但在 keyup 等上起作用)
jQuery: Triggering event on dblclick not working (but working on keyup etc.)
我是 JS 新手/jQuery 并在我的文档中使用以下代码片段准备好 在具有特定 class 的 TDs 上调用 keyup 函数:
$(document).on('keyup', '.calcInOut, .calcBalance', calculateSumsKPR);
该函数根据 table 中的输入计算一些数据,然后使用计算结果更新单元格。
table 是一个标准的 HTML table,具有大量动态添加的行和 TD,并且所有 editable TD 都包含一个 contenteditable div 用户可以在其中输入数字。
目前一切正常,但出于某种原因我无法在双击时调用相同的函数。
我尝试使用 'dblclick keyup'
而不是 'keyup'
并且还尝试复制整个代码段并将 keyup
替换为 dblclick
但两者都不会触发功能双击。
我确实有另一个单独启动的双击事件,并在双击时清除 div 的内容,但是 我不应该调用两个单独的事件吗? ?
示例 TD:
<td class="calcInOut editable"><div contenteditable="true"></div></td>
非常感谢您对此提供的任何帮助,
麦克
这对我有用:
$(".js-double-click").dblclick(function() {
alert("Handler for .dblclick() called.");
});
这是一个工作代码笔:http://codepen.io/socketwiz/pen/OVQdqK?
这里有选项...
看来您可能已尝试过重载事件绑定,但这行不通。
不起作用
$(object).on("click dblclick keyup", function() { /*do stuff*/ })
$(object).bind("click dblclick keyup", function() { /*do stuff*/ })
有效
$(object).on("click", function() { /*do stuff*/ }).on("dblclick", function() { /*do stuff*/ }).on("keyup", function() { /*do stuff*/ });
$(object).bind("click", function() { /*do stuff*/ }).on("dblclick", function() { /*do stuff*/ }).on("keyup", function() { /*do stuff*/ });
或
$(object).click(function() { /*do stuff*/ }).dblclick(function() { /*do stuff*/ }).keyup(function() { /*do stuff*/ });
还有
假设你的事件都想触发相同的 process/method/procedure...
那么你会这样做:
function doStuff() {
/*do stuff*/
}
$(object).on("click", doStuff).on("dblclick", doStuff).on("keyup", doStuff);
或
$(object).bind("click", doStuff).on("dblclick", doStuff).on("keyup", doStuff);
或
$(object).click(doStuff).dblclick(doStuff).keyup(doStuff);
我是 JS 新手/jQuery 并在我的文档中使用以下代码片段准备好 在具有特定 class 的 TDs 上调用 keyup 函数:
$(document).on('keyup', '.calcInOut, .calcBalance', calculateSumsKPR);
该函数根据 table 中的输入计算一些数据,然后使用计算结果更新单元格。 table 是一个标准的 HTML table,具有大量动态添加的行和 TD,并且所有 editable TD 都包含一个 contenteditable div 用户可以在其中输入数字。
目前一切正常,但出于某种原因我无法在双击时调用相同的函数。
我尝试使用 'dblclick keyup'
而不是 'keyup'
并且还尝试复制整个代码段并将 keyup
替换为 dblclick
但两者都不会触发功能双击。
我确实有另一个单独启动的双击事件,并在双击时清除 div 的内容,但是 我不应该调用两个单独的事件吗? ?
示例 TD:
<td class="calcInOut editable"><div contenteditable="true"></div></td>
非常感谢您对此提供的任何帮助, 麦克
这对我有用:
$(".js-double-click").dblclick(function() {
alert("Handler for .dblclick() called.");
});
这是一个工作代码笔:http://codepen.io/socketwiz/pen/OVQdqK?
这里有选项...
看来您可能已尝试过重载事件绑定,但这行不通。
不起作用
$(object).on("click dblclick keyup", function() { /*do stuff*/ })
$(object).bind("click dblclick keyup", function() { /*do stuff*/ })
有效
$(object).on("click", function() { /*do stuff*/ }).on("dblclick", function() { /*do stuff*/ }).on("keyup", function() { /*do stuff*/ });
$(object).bind("click", function() { /*do stuff*/ }).on("dblclick", function() { /*do stuff*/ }).on("keyup", function() { /*do stuff*/ });
或
$(object).click(function() { /*do stuff*/ }).dblclick(function() { /*do stuff*/ }).keyup(function() { /*do stuff*/ });
还有
假设你的事件都想触发相同的 process/method/procedure...
那么你会这样做:
function doStuff() {
/*do stuff*/
}
$(object).on("click", doStuff).on("dblclick", doStuff).on("keyup", doStuff);
或
$(object).bind("click", doStuff).on("dblclick", doStuff).on("keyup", doStuff);
或
$(object).click(doStuff).dblclick(doStuff).keyup(doStuff);