我有一个数据网页,里面可能有几千个TD.一些TD将需要使用TD的内容或部分内容的绑定onclick事件.
我正在使用jQuery添加onclick闭包,如下所示:
$(".date").click(function() { var d = this.html(); doSomething(this,d,otherparams); }
解决方法
事实上,这是非常低效的.甚至更多,因为您可以使用事件委派轻松解决它.这样做,将只使用一个事件处理程序方法而不是“数千”.
$('table').delegate('td.date','click',function( event ) { var d = $(this).html(); doSomething(this,otherparams); });
您只需要调用此构造一次(在任何循环之外).它会将click事件处理程序绑定到上面示例中的所有表(例如,您应该更精确地使用id).由于大多数浏览器事件确实“冒泡”了DOM树,因此任何点击都发生在< td>中.元素最终会到达< table>并在那里处理.
参考:.delegate()