2013-06-24 76 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; 
      }; 

    });