2010-02-11 22 views
8

Aynı onSelect olayını bir jquery datePicker nesnesinde iki kez işlemeye çalışıyorum. Olayı anladığım kadarıyla birden çok kez ele alınabilir, ancak bunu denediğimde, yalnızca olay işleyicilerinden biri kovulur. İkinci işleyiciyi ateşe veriyor, ama ilk değil. Birincisini geçersiz kılmadan aynı onSelect olayını iki kez nasıl ele alabilirim? Bu, sorun kod snippet'idir.jquery datepicker olayı olay işleyicisi birden çok kez

$(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'); }); 
} 

cevap

11

Kullandığınız kod yalnızca ilk onSelect işleyiciyi ikinci ile değiştirmektir. Eğer iki şey yapmak isterseniz, önce mevcut onSelect işleyicisini almanız ve sonra onu değiştirdiğiniz işleyiciden çağırmanız gerekir.

$(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

Harika! Tam olarak aradığım şey, yardımlarınız için teşekkürler! – Noel

+0

Gerçekten! Güzel bir cevap. – Arjmand

+0

4 kez '$ ('. 'Test') yapıyor biraz israf değil mi? Aksi halde çok yararlı bir cevap – freefaller

İlgili konular