jQuery onClick适用于前两次点击,但在此之后停止

时间:2013-05-28 06:50:02

标签: javascript jquery html css

我正在尝试使用jQuery将特定div从我服务器上的单独页面加载到当前页面上的div中。代码位于我的标题中,它在网站上的前两次点击成功运行,但之后没有。

我正在使用的代码是:

 <script type="text/Javascript">
$('a').click(function(e) {
$("#container").load($(this).attr('href') + " #wrapper");
e.preventDefault();
});
</script>

我发现该网站不完整或功能齐全,但现在可以通过以下步骤在dev.justapo.co进行尝试:

  1. 点击其中一个帖子
  2. 加载帖子后,点击标题中的标题
  3. 现在点击页面上的任何链接 - jQuery已损坏
  4. 非常感谢任何帮助,我正在尝试学习jQuery而不确定我在这里做错了什么。

4 个答案:

答案 0 :(得分:2)

问题是$('a')。click()在执行代码时将事件处理程序附加到所有锚元素,而新创建的元素将不会设置该处理程序。

你会想要使用委托,如下:

$('body').on('click', 'a', handler_function);

请参阅.on()的文档。

答案 1 :(得分:1)

$('html').on('click', 'a', function(e) {
$("#container").load($(this).attr('href') + " #wrapper");
e.preventDefault();
});

答案 2 :(得分:1)

尝试 -

$('html').on('click', 'a', function(e) {
   $("#container").load($(this).attr('href') + " #wrapper");
   e.preventDefault();
});

更新

我只是看看你的网站。你可能需要做这样的事情 -

$('#primary a').click(function(){
   $("#container").load($(this).attr('href') + " #wrapper");
   return false;
});

您遇到问题,因为此ID primary和ID不能重复。你应该使用class。

答案 3 :(得分:0)

嘿,你也可以试试这段代码

$('a').live("click",function(e) {
$("#container").load($(this).attr('href') + " #wrapper");
e.preventDefault();
});

希望它可以帮到你