2012-07-26 6 views
5

Il Datepicker di jQuery consente di evidenziare le date utilizzando il callback di BeforeShowDay.jQuery Datepicker BeforeShowDay Secondo parametro

È possibile passare un secondo parametro al metodo?

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

function selectedDay(date) { 

    // Do stuff 

    return [true, 'class_name']; 
} 

Come si può vedere, il parametro date è passato automaticamente al metodo selectedDay, rendendo così mi sicuri di come passare un secondo parametro.

Cheers.

risposta

16

Mi chiedevo circa la stessa domanda e credo di aver trovato la risposta:

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

Se ho capito bene, si può solo creare un'altra funzione e superare eventuali params desiderate:

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

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

Hi. Ricevo quello che stai dicendo, ma dovrei comunque passare 'param' nella funzione' selectDay'. – Jarrod

0

È possibile scrivere una funzione che restituisce un array di date

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

e poi

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

solo un'idea, non sono assolutamente sicuro se funziona

0

Ho fatto ricorso a non-migliori pratiche per risolvere il mio problema. Ho semplicemente fatto il secondo parametro per passare un globale. Farà il lavoro per il momento.

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

var my_param = x; 
function selectedDay(date) { 

    // Do stuff, use my_param 

    return [true, 'class_name']; 
}