2010-02-11 4 views
8

J'essaie de gérer deux fois le même événement onSelect sur un objet jquery datePicker. De ce que je comprends l'événement peut être manipulé plusieurs fois, mais quand j'essaye cela seulement un des gestionnaires d'événement est renvoyé. Il semble tirer le deuxième gestionnaire, mais pas le premier. Comment puis-je gérer le même événement onSelect deux fois sans passer outre le premier? C'est l'extrait de code de problème.jquery datepicker surélève plusieurs fois le gestionnaire d'événements

$(document).ready(function(){ 
    $('.test').datepicker(); 
    ... 
    $('.test').datepicker('option', 'onSelect', function(dateText, inst) { alert('one'); }); 
} 

... 

$(document).ready(function(){ 
    $('.test').datepicker('option', 'onSelect', function(dateText, inst) { alert('two'); }); 
} 

Répondre

11

Le code que vous utilisez remplace simplement le premier gestionnaire onSelect par le second. Si vous voulez faire deux choses, vous devrez d'abord obtenir le gestionnaire onSelect existant, puis l'appeler depuis le gestionnaire avec lequel vous le remplacez.

$(function() { 
    $('.test').datepicker(); 
    $('.test').datepicker('option', 'onSelect', function(dateText,inst) { alert('one'); }); 
    var prevHandler = $('.test').datepicker('option','onSelect'); 
    $('.test').datepicker('option', 'onSelect', function(dateText,inst) { prevHandler(dateText,inst); alert('two'); }); 
}); 
+0

Beaucoup d'amour! C'est exactement ce que je cherchais, merci pour votre aide! – Noel

+0

Vraiment! Une belle réponse. – Arjmand

+0

N'est-ce pas un gaspillage de faire '$ ('. Test')' 4 fois? Sinon, une réponse très utile – freefaller