微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript使用数百个闭包或一个函数调用

我有一个数据网页,里面可能有几千个TD.一些TD将需要使用TD的内容或部分内容的绑定onclick事件.

我正在使用jQuery添加onclick闭包,如下所示:

$(".date").click(function() {
    var d = this.html();
    doSomething(this,d,otherparams);
}

这有效吗?似乎我的页面将包含几百个或几千个几乎相同的闭包.将doSomething调用放在其他地方会不会更好.

解决方法

事实上,这是非常低效的.甚至更多,因为您可以使用事件委派轻松解决它.这样做,将只使用一个事件处理程序方法而不是“数千”.

$('table').delegate('td.date','click',function( event ) {
    var d = $(this).html();
    doSomething(this,otherparams);
});

您只需要调用此构造一次(在任何循环之外).它会将click事件处理程序绑定到上面示例中的所有表(例如,您应该更精确地使用id).由于大多数浏览器事件确实“冒泡”了DOM树,因此任何点击都发生在< td>中.元素最终会到达< table>并在那里处理.

参考:.delegate()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐