jQuery - 使用选择器范围作为函数参数来绑定事件
我正在将一些点击事件应用于网格中的所有锚点。
我有一些 ajax 可以更新网格中的一行。
我不想再次将事件应用于整个网格,而是希望只应用于 ajax 更新的行,因此我将范围传递给绑定函数:
function bindEvents(scope)
{
scope.find("a").click(function() { //do something });
}
function gridLoad()
{
..
bindEvents($);
}
function ajax()
{
..
bindEvents($(tr));
}
我收到错误,抱怨对象不支持单击事件。
当代码也很简单时,这确实有效
$("a").click(function() { //do something });
,在查找后添加 .each 没有效果。
有这方面的最佳实践吗?
I am applying some click events to all anchors in a grid.
I have some ajax which updates a row in the grid.
Rather than applying the events to the whole grid again, i wish to just apply to the ajax-updated row, so I pass in the scope to the bind function:
function bindEvents(scope)
{
scope.find("a").click(function() { //do something });
}
function gridLoad()
{
..
bindEvents($);
}
function ajax()
{
..
bindEvents($(tr));
}
I am getting errors complaining about object doesnt support click event.
This was deffo working when the code was simply
$("a").click(function() { //do something });
also, adding a .each after the find has had no effect.
Is there best practice for this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
.live()
或.delegate()
并且您不需要重新绑定处理程序。它也比为每个绑定一个处理程序更有效,因为 DOM 树上只有一个事件侦听器。
只需一次,在文档准备好后,如下所示:
Use
.live()
or.delegate()
and you won't need to rebind the handler. It's more efficient than binding a handler for every<a>
as well, since there's just a single event listener higher up the DOM tree.Just once, on document ready, like this: