2012-07-26 26 views
5

jQuery's datepicker le permite resaltar las fechas usando la devolución de llamada BeforeShowDay.jQuery Datepicker BeforeShowDay Segundo parámetro

¿Es posible pasar un segundo parámetro al método?

$(selector).datepicker({beforeShowDay: selectedDay}); 

function selectedDay(date) { 

    // Do stuff 

    return [true, 'class_name']; 
} 

Como se puede ver, el parámetro date se pasa automáticamente al método de selectedDay, con lo que me inseguro en cuanto a cómo pasar un segundo parámetro.

Saludos.

Respuesta

16

Me preguntaba sobre la misma pregunta y creo que he encontrado la respuesta:

function selectedDay(date, param) { 
    // Do stuff with param 
    return [true, '']; 
} 

function doStuff(){ 
    var param = "param_to_pass"; 
    $(selector).datepicker({ 
     beforeShowDay: function (date){ 
      return selectedDay(date, param); 
     } 
    }); 
} 
0

Si he entendido bien, sólo se puede crear otra función e indique los parametros que desee:

function foo (param) { ... } 
function selectedDay (date) { 
    foo(param); 
    return [true, 'class_name']; 
} 

$(selector).datepicker({beforeShowDay: selectedDay}); 
+0

Hola. Entiendo lo que dices, pero igual tendré que pasar 'param' a la función' selectDay'. – Jarrod

0

Puede escribir una función que devuelve una matriz de fechas

function selectedDay(date1,date2) { 
// your code 
return dates[]; 
} 

y luego

$(selector).datepicker({beforeShowDay: selectedDay}); 

solo una idea, absolutamente no estoy seguro si funciona

0

Recurrí a no-la-mejor-práctica para resolver mi problema. Simplemente hice el segundo parámetro para pasar un global. Hará el trabajo por el momento.

$(selector).datepicker({beforeShowDay: selectedDay}); 

var my_param = x; 
function selectedDay(date) { 

    // Do stuff, use my_param 

    return [true, 'class_name']; 
}