2010-12-17 2 views
1

j'ai ma fonction (je dois délie plus tard):jQuery délier, puis lier à nouveau

$("#closebtn").click(function(){ 
    $.address.value('/x'); 
}); 

Je délie après un événement:

$("#closebtn").unbind("click"); 

Maintenant, je veux associer mon " cliquez sur "fonction encore à mon #closebtn, comment puis-je faire? merci d

Répondre

5

cédez votre fonction à une variable

var closebtn = function() { 
    $.address.value('/x'); 
}; 

Ensuite, vous pouvez lier avec la variable

$("#closebtn").click(closebtn); 
0

Si elle est en fait un bouton, pourriez-vous simplement désactiver, plutôt que dissocier/re-lier. Ou, ajoutez une instruction if pour que la fonction renvoie false lorsque vous ne voulez pas qu'elle se déclenche - je pense que cela serait plus efficace que bind/un-bind/rebind, ce qui est assez coûteux.

Quelque chose comme ça, peut-être?

$("#closebtn").click(
    function() { 
     if (inEvent) { 
      return false 
     } 
     $.address.value('/x') 
    }) 

$('someOtherElement').click(
    function() { 
     inEvent = 1 
     // ... 
     // do the processing where you don't 
     // want the function to fire 
     .. ... 
     inEvent = 0 
    }) 
Questions connexes