Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在单元格元素上绑定事件的最佳方法_Javascript_Javascript Events_Jquery - Fatal编程技术网

Javascript 在单元格元素上绑定事件的最佳方法

Javascript 在单元格元素上绑定事件的最佳方法,javascript,javascript-events,jquery,Javascript,Javascript Events,Jquery,我有一个由JS脚本填充的网页,该脚本创建了许多HTML表 创建的的数量可以在1到1000之间变化,每个单元格中有100个单元格 我的问题是:如何有效地绑定单击这些表?我是应该将单击的每个单元格绑定,还是直接绑定到本身,并在绑定函数中检索单击的单元格 或者你有别的想法吗 谢谢 注意:我正在使用IE6+在表上绑定事件以加快执行速度,并在该函数中获取单元格详细信息。由于您似乎在使用jQuery,所以应该使用表上的方法,例如: $('table').delegate('td', 'click', fun

我有一个由JS脚本填充的网页,该脚本创建了许多HTML表

创建的
的数量可以在1到1000之间变化,每个单元格中有100个单元格

我的问题是:如何有效地绑定单击这些表?我是应该将单击
的每个单元格绑定,还是直接绑定到
本身,并在绑定函数中检索单击的单元格

或者你有别的想法吗

谢谢


注意:我正在使用IE6+

在表上绑定事件以加快执行速度,并在该函数中获取单元格详细信息。

由于您似乎在使用jQuery,所以应该使用表上的方法,例如:

$('table').delegate('td', 'click', function() {
    // $(this) refers the the clicked cell
});
这将把一个事件处理程序绑定到表并捕获冒泡的点击事件

绑定如此多的事件处理程序,即将一个事件处理程序绑定到每个单元格,确实不是一个好主意,尤其是在IE中(出于性能原因)。

我建议您使用


委托将只绑定一个事件,即绑定到上下文(在本例中为
)。

您可以在此处找到类似的toppic:

我会这样说:

$("table#yourTable").click(function(evt){
   if($(evt.target).is('td')) {
     //do whatever you want to do
   }
})
$("table#yourTable").click(function(evt){
   if($(evt.target).is('td')) {
     //do whatever you want to do
   }
})