Javascript jQuery没有';我不喜欢.on和.append?

Javascript jQuery没有';我不喜欢.on和.append?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有个奇怪的问题。 我目前正在使用PHP、AJAX和MySQL加载帖子。代码结构本身如下所示: 我的代码结构 ---main.js--- ---ajax.js--- 那么问题出在哪里? 当我添加新帖子时,它们会出现,但我不能再单击.btn.open了-难道“on()”不应该修复这个问题吗?当我进入谷歌浏览器控制台时 有人知道解决问题的潜在方法吗? 编辑: 附加的帖子与默认加载的帖子相同 “.btn.open”存在(带有class=“btn open”的div) 我正在使用jQuery v2.0.

我有个奇怪的问题。 我目前正在使用PHP、AJAX和MySQL加载帖子。代码结构本身如下所示:

我的代码结构 ---main.js---

---ajax.js---

那么问题出在哪里? 当我添加新帖子时,它们会出现,但我不能再单击.btn.open了-难道“on()”不应该修复这个问题吗?当我进入谷歌浏览器控制台时

有人知道解决问题的潜在方法吗?

编辑:
  • 附加的帖子与默认加载的帖子相同
  • “.btn.open”存在(带有class=“btn open”的div)
  • 我正在使用jQuery v2.0.3(因此.on应该可以工作!,.live和.delegate被.on!替换为
  • 删除了由损坏的Chrome extention=无更改创建的错误消息
  • 创建了一个.gif文件,显示正在运行的问题:
  • 修复@通过将$(文档)替换为$('body')找到了一个小解决方案

    但是
  • 此修复似乎不是一个完美的解决方案,因为$(文档)通常必须工作!因为我想要干净的代码,所以我将完全尝试@的方法,也许我会通过这种方式找到解决方案谢谢


  • 您需要使用
    'body'
    document.body
    而不是
    document

        $('body').on('click', '.btn.refresh', function(){
             $.ajax({
                  ... ajax stuff ...,
                  success: function(html){
                       // Show new posts
                       $('.post_container').prepend(html);
                  }
             });
         });
    

    原因:在正文中添加内容并没有达到文档级(),看起来您也可以使用
    窗口

    我假设
    $.function(){}
    是一个打字错误,实际上是
    $(function(){})
    ?您的代码似乎对我有用:事实上jquery讨厌那些混蛋!你有没有试过禁用iMacros插件?结果会改变吗?@rockethazmatjquery不喜欢.on和.append,因为那些家伙都是混蛋。请解释一下,为什么?
    function initAjax(){
    
    //   Toggles a navigation
    
         $(document).on('click', '.btn.open', function(){
             ... toggles a window ...
         });
    
    //   Add new posts
    
         $(document).on('click', '.btn.refresh', function(){
             $.ajax({
                  ... ajax stuff ...,
                  success: function(html){
                       // Show new posts
                       $('.post_container').prepend(html);
                  }
             });
         });
    }
    
        $('body').on('click', '.btn.refresh', function(){
             $.ajax({
                  ... ajax stuff ...,
                  success: function(html){
                       // Show new posts
                       $('.post_container').prepend(html);
                  }
             });
         });