2013-06-24 37 views
0

为什么响应页面(test.html)上的链接无法在主页面上调用jquery?尽管两个环节都有相同的课程,但请帮助我做些什么来使其发挥作用。响应页面无法在主页上调用jquery函数

主页:test.html中的

<script type="text/javascript"> 
     $(document).ready(function() { 
     $(".comment_link").click(function() { 
       $.ajax({ 
        url: "test.html", 
        success: function (cont) { 
         if (cont) { 
          $("#view").append(cont); 
         } 
        } 
       }); 
       return false; 
    }); 
    }); 
    </script> 

    <div id="view"></div> 
    <a href="#" class="comment_link">add comment</a> 

文件内容:

Helloo 
    <a href="#" class="comment_link">Test</a> 

回答

1

您需要使用事件代表团 - 因为你是动态

$(document).on('click',".comment_link",function(){...}); 

加入comment_link你需要像这样改变你的代码 -

$(document).ready(function() { 
    $(document).on('click', ".comment_link", function() { 
     $.ajax({ 
      url: "test.html", 
      success: function (cont) { 
       if (cont) { 
        $("#view").append(cont); 
       } 
      } 
     }); 
     return false; 
    }); 
}); 
+0

对不起,我必须把你的代码放在哪里呢?我是新手 –

+0

您需要将脚本标签内的所有代码替换为我发布的内容 - 行后_您需要像这样更改代码_ –

1

元素是“新”创建的,所以你必须将事件绑定到它...

使用on()方法。 (以前是live()但那不建议使用)

$('body').on('click','.comment_link',function(){..//your code here..}); 

所以你想将您的AJAX的功能,这样你就可以调用它的点击,并委托给新的元素以及....而无需重写代码...你不必这样做,只是让它更容易重用等。

$(document).ready(function() { 
    //Assign click handler   
    $('body').on('click','.comment_link', getAjax); 

     //Your Ajax call put into function 
     function getAjax(){ 
      $.ajax({ 
       url: "test.html", 
       success: function (cont) { 
        if (cont) { 
         $("#view").append(cont); 
        } 
       } 
      }); 
      return false; 
      }; 

    });