jQuery:触发器不会在加载了 .load() 的元素上触发

jQuery: triggers do not fire on elements loaded with .load()

本文关键字:元素 load 触发器 加载 jQuery      更新时间:2023-09-26

我有索引.php并使用jQuery .load()从load.php加载内容。

当我在索引.php中的元素上触发事件时,该事件将触发。在相同的元素上,当使用 .load() 加载到 index 中时.php事件不会触发!?

为什么?我做错了吗?

如果我使用例如FireBug预览页面,则元素的 #id 与应有的完全相同,但即使是这样的功能也不起作用:

$('#clickme').click(function() {
    alert('hello');
});

如果元素放在索引中.php并且没有加载 .load(),则相同的函数有效。任何想法??

提前非常感谢!

使用 click 将在调用元素时在元素上创建一个事件侦听器。 如果在调用click时元素不存在,则不会创建侦听器。 您需要使用 on 使用事件委托(或在旧版本的 jquery 中delegate)。

查看文档并阅读有关委派的信息。 你需要这样的东西:

$("<selector of static ancestor>").on("click", "#clickme" , function(){})

click 事件绑定器不绑定到执行后创建的任何元素。 可以在 .load() 方法之后立即添加click侦听器,也可以使用 livedelegate 之类的内容绑定到 DOM 中的元素模式。