2014-01-23 48 views
-3

我正在學習JQuery並面臨一些問題。如何刪除元素的事件處理程序並將其設置回去?

<html> 
    <head> 
     <link rel="stylesheet" href="css/puzzle.css" type="text/css" /> 
     <script src="scripts/jquery.js" type="text/javascript"></script> 
     <script src="scripts/test.js" type="text/javascript"></script> 
    </head> 
    <body> 
     <div id="parent"> 
      <a href="#" class="link1">link1</a> 
      <a href="#" class="link2">link2</a> 
      <a href="#" class="link3">link3</a> 
     </div> 
    <body> 
</html> 

$(
    function() {   
     $("#parent").on("click", "a", function() { 
      linkClick(this); 
     }); 

     function linkClick(link) {    
      $("#parent a").first().off("click"); 
      console.log(link); 
     } 
    } 
) 

問題1:當用戶點擊一個鏈接,我可以刪除鏈接的事件haneler?

問題2:如果問題1已被底層化,我可以將onclick事件處理程序添加回「指定的鏈接」而不會影響其他鏈接嗎?

感謝您的閱讀。

==

我試圖用$( 「#父」)第一()關( 「點擊」)。;解除綁定第一個鏈接的事件處理程序。 但是無論我點擊第一個鏈接多少次,這個控制檯仍然會打印數據。

如何刪除鏈接的事件處理程序,然後在幾秒鐘內將其添加回去?

回答

0

使用off

刪除事件:

$("#parent a").first().off("click"); 

添加事件:

$("#parent a").first().on("click", function(){ 
    //click event code 
}) 
0

用途:

//Remove click event for first element 

$("#parent a").first().off("click"); 

//Bind new event to element: 

$("#parent a").first().bind('click',function(){ 
    //click event code 
}) 
+1

Thanks.Using 「開」 和 「關」,而不是「綁定」和「解除綁定」總是一個好的做法。 –

+0

對不起,我修改了我的問題。 如果它不是用戶指定的第一個鏈接(隨機選取),我該怎麼辦? – 0Mission0

+0

現在有什麼問題。使用第n個子選擇符而不是第一個與其他定位標記相同。 –

相關問題