2010-02-11 21 views
8

Estoy tratando de manejar el mismo evento onSelect en un objeto jQuery datePicker dos veces. Por lo que entiendo, el evento puede manejarse varias veces, pero cuando intento esto, solo uno de los controladores de eventos es despedido. Parece disparar el segundo controlador, pero no el primero. ¿Cómo puedo manejar el mismo evento onSelect dos veces sin anular el primero? Este es el fragmento de código del problema.jquery datepicker onselect controlador de eventos varias veces

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

Respuesta

11

El código que está utilizando es simplemente reemplazando el primer manejador onSelect con el segundo. Si desea hacer dos cosas, primero deberá obtener el controlador onSelect existente y luego llamarlo desde el controlador con el que lo está reemplazando.

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

¡Maravilloso! Eso es exactamente lo que estaba buscando, ¡gracias por tu ayuda! – Noel

+0

¡De verdad! Una hermosa respuesta. – Arjmand

+0

¿No es un poco derrochador hacer '$ ('. Test')' 4 veces? De lo contrario, una respuesta muy útil – freefaller

Cuestiones relacionadas