jQuery添加事件处理程序来评估'ed元素
jQuery adding event handlers to eval'ed elements
我有一个表动态生成的jQuery,使用
this.html("<table><tr><td><div>Click Me</div></td></tr></table>");
在表中,我有几个div (为了简单起见,我的示例只显示了一个),我想为其添加单击事件处理程序。我想保持html的干净和使用尽可能多的jQuery的力量,我可以,但因为我正在做一个'eval'类型的事情,我不能完全弄清楚如何做到这一点。
我知道,我可以使用$("div[some attribute selector]").on("click", {}, clickHandler);
,但在我的情况下,这是一个好主意吗?
您需要委托事件。要做到这一点,只需像这样使用jquery的on()
方法:
$(document.body).on('click', 'div', function( event ) {
// do something
});
Ref。: .delegate(), .on()
那是什么?几乎所有的事件都会发生我们所说的"泡沫"。这意味着,如果单击一个嵌套元素,浏览器将查看该节点上是否有关联的单击事件处理程序。如果有,则执行它们,然后还询问该元素的父元素是否有单击事件处理程序。这个过程一直持续,直到某个处理程序prevents
从进一步冒泡中取出事件,或者我们已经到达document.documentElement
(html)。
document.body
更改为相对于您动态添加的元素最接近的节点。你可以使用live或者delegate来完成
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- 在函数中添加数组元素的数值
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 将视口底部滚动到元素底部
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 我如何修改我的mentionify扩展以忽略已经'mentionify'-ed元素
- Javascript“document.getElementById"它能代替ID'ed元素中的tes
- jQuery添加事件处理程序来评估'ed元素
- (Jquery)从load[ed]() HTML元素样式中获取背景图像路径
- 捕获元素"load"使用jQuery为append()-ed元素添加事件
- TypeError:元素为空"在autocmd'ed事件.feedkey函数