2014-02-06 62 views
0

有個問題,我用jquery自動重新加載每5個seconces一個遠程php頁面。沒問題。 此頁面包含資產(可點擊),我無法完成工作。元素顯示爲不活動。我說我想用另一個jquery函數。jquery /(live/on @> 1.7)/ setTimeout/reload/ajax/contains資產(可點擊)

的Index.html:

<html> 
    <head> 
     <meta charset="utf-8" /> 
     <title>CPAC</title> 
    </head> 
    <body> 
<a title="" style="padding : 1px 2px;" href="#" class="cl"><img src="images/fastcoin.png"></a> 
     <div id="lWorkers">Loading ...</div> 
     <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function(){ 
        var interval = 5000; 
        var refresh = function() { 
         $.ajax({ 
          url: "lWorkers.php", 
          cache: false, 
          success: function(data) { 
           $("div#lWorkers").html(data); 
           setTimeout(function() { 
            refresh(); 
           }, interval); 
          } 
         }); 
        }; 

        refresh();   

        $(".cl").click(function() { 
        alert("toto"); 
        return false; 
        }); 
      }); 
     </script> 
    </body> 
</html> 

而且lWorkers.php採樣返回:

<a title="" style="padding : 1px 2px;" href="#" class="cl"><img src="images/fastcoin.png"></a> 
<a title="" style="padding : 1px 2px;" href="#" class="cl"><img src="images/fastcoin.png"></a> 
<a title="" style="padding : 1px 2px;" href="#" class="cl"><img src="images/fastcoin.png"></a> 
<a title="" style="padding : 1px 2px;" href="#" class="cl"><img src="images/fastcoin.png"></a> 

回答

0

變化:

$(".cl").click(function() { 
       alert("toto"); 
       return false; 
       }); 

要:

$("body").on("click", ".cl", function() { 
       alert("toto"); 
       return false; 
       }); 

。在Ajax內容刷新後,單擊不起作用。 「開」的確如此。

+0

大。 Merci! J'étaispersuadéd'avoir tester mais bon .... – Giveme

1

您通過ajax 添加的.c1尚不存在當您綁定點擊處理程序時。只要文檔準備就緒,您就可以進行綁定,但稍後會加載這些元素。最好的辦法是使用event bubbling。 Jquery通過on() method可以輕鬆實現。

$("div#lWorkers").on('click', 'a', function() { 
    alert('toto'); 
}); 

另一種選擇是做單擊success()回調您refresh功能的結合,你已經附加了HTML到DOM後。