设置内联dblclick()侦听器到元素

时间:2014-05-07 13:13:14

标签: javascript jquery

我有一个表,它在js中构造,然后附加到页面上的div。 每一行都有一个内联事件监听器onclick()

 var table = '<table>';

 for (var i =0; i< 10; i++) {
   table += '<tr onclick="myfunction()"><td></td></tr>'
 }

 table += '</table>'

$('#myDiv').html(table);

如何在此构造中使用doulbe点击事件而不是单击?

编辑: 在这种情况下我不使用委托,因为我有很多参数(每行的uniq),它们也在每行上构造内联。表每秒刷新大约50次,因此一旦使用所有参数构造内联函数就更容易了,然后在将表附加到DOM之后设置noumerous侦听器。 我已经尝试了两种方式,并且在我的情况下内联工作速度更快,更清楚地理解了应该发生的事情。

3 个答案:

答案 0 :(得分:1)

只需将onclick更改为ondblclick

但是,使用内联js是一个坏主意。

由于您使用的是,因此您可以使用事件委派。

答案 1 :(得分:1)

由于你问题中的一个标签是jQuery,我会使用jQuery来完成这个任务,并且不会直接在你的DOM元素中连接你的事件处理程序。

$('#generatedTable').on('dblclick', 'tr', function() {
    alert('tr is clicked');
});

其中generateTable是表格的ID。

使用 on 将允许响应所有生成的trs的双击

FIDDLE

答案 2 :(得分:0)

您正在寻找的属性称为ondblclick,但请允许我指出使用此类事件属性不好引用MDN:

  

应该避免这种方式。这使得标记更大,可读性更低。对内容/结构和行为的关注并没有很好地分离,使得更难找到bug。

来源:https://developer.mozilla.org/en/docs/Web/API/Event#HTML_attribute