jquery 事件不适用于 append 元素

标签 jquery image events append

我有这个网站 here

正如您所看到的,“图像”和“Web 模板”选项卡有一个微小的图像 slider ,其中图像从右向左滑动,然后消失,然后出现在父元素的最末尾(<tr>就我而言)。

如果将鼠标悬停在小图像上,您可以在左侧看到它的预览。

到目前为止一切顺利。

但是,如果您等到第一张图像再次出现,则悬停事件将不再起作用。

jquery 有可能看不到 <tr> 标记末尾的新 append 元素吗?

最佳答案

绑定(bind)事件的方式不适用于动态添加的元素。在 Preview_script.js 中,您有:

$(".box_body img").hover(function(){

这会将事件处理程序添加到类为“box_body”的所有 img 标签中,但稍后 append 的事件处理程序将不会获取该事件。

试试这个:

$(document).on("hover", ".box_body img", function() {..});

这会将事件添加到文档中,并且仅当事件目标是带有 class =“box_body”的 img 时才触发它。由于事件向上传播,只要在到达文档之前没有任何东西阻止它(通过调用“event.stopPropagation()”),这应该可以工作

如果您知道“.box_body img”的父级,则可以用它替换文档,这会更好一些,因为您不必等待事件传播到文档。

请注意,您可以使用委托(delegate)完成同样的事情(如果 on 不可用):

$(document).delegate(".box_body img", "hover", function() {..});

关于jquery 事件不适用于 append 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10856650/

相关文章:

javascript - 如何创建具有不确定状态的自定义复选框

javascript - 为什么我的元素在js中总是返回相同的值?

html - WordPress 主题 - 找不到样式源文件

jquery - jquery lavalamp 菜单上的中心图像

c# - 监听另一个应用程序的退出

android - 微调器 OnItemSelected 不起作用

javascript - JQuery 轮播中的 ASP 转发器

javascript - 如何知道用户是否在我的页面上打开了多个浏览器选项卡?

java - 打印屏幕期间的噪音

javascript - 如何在 cordova 应用程序中使用按钮?