jQuery:dblclick上的触发事件无法正常工作(但正在处理keyup等)

时间:2015-07-03 13:59:56

标签: javascript jquery html events double-click

我是JS / jQuery的新手,并在我的文档中使用以下代码段,以便在具有某个类的TD上调用keyup上的函数:

$(document).on('keyup', '.calcInOut, .calcBalance', calculateSumsKPR);

该函数根据表中的输入计算一些数据,然后使用计算结果更新单元格。 该表是一个标准的HTML表,其中包含大量动态添加的行和TD,所有可编辑的TD都包含一个可信的div,用户可以在其中输入数字。

到目前为止,一切都按预期工作但由于某种原因我无法在双击时调用相同的功能

我尝试使用'dblclick keyup'代替'keyup',并尝试复制整个代码段并将keyup替换为dblclick,但两者都不会在双击时触发该功能。

我确实有双击的另一个事件,单独启动并在双击时清除div的内容,但我不能在此上调用两个单独的事件吗?

示例TD:

<td class="calcInOut editable"><div contenteditable="true"></div></td>

非常感谢您对此提供的任何帮助, 麦克

2 个答案:

答案 0 :(得分:2)

你有选择......

看起来你可能已经尝试重载事件绑定,但它不会起作用。

不工作

unsigned char s = (unsigned char) mxGetScalar(...); // cast a double to unsigned char

工作

$(object).on("click dblclick keyup", function() { /*do stuff*/ })

$(object).bind("click dblclick keyup", function() { /*do stuff*/ })

OR

$(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*/ });

OR

function doStuff() {
/*do stuff*/
}

$(object).on("click", doStuff).on("dblclick", doStuff).on("keyup", doStuff);

OR

$(object).bind("click", doStuff).on("dblclick", doStuff).on("keyup", doStuff);

答案 1 :(得分:0)

这对我有用:

$(".js-double-click").dblclick(function() {
  alert("Handler for .dblclick() called.");
});

这是一个有效的代码:http://codepen.io/socketwiz/pen/OVQdqK