2

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

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

为什么?我做错了吗?

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

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

如果元素放置在 index.php 中并且没有使用 .load() 加载,则相同的功能可以工作。有任何想法吗??

非常感谢您!

4

2 回答 2

3

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

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

$("<selector of static ancestor>").on("click", "#clickme" , function(){})
于 2012-04-20T20:15:09.573 回答
2

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

于 2012-04-20T20:18:45.467 回答