2012-07-26 39 views
5

Trình ghi ngày tháng của jQuery cho phép bạn đánh dấu các ngày bằng cách sử dụng cuộc gọi lại BeforeShowDay.jQuery Datepicker BeforeShowDay Tham số thứ hai

Có thể chuyển tham số thứ hai cho phương pháp không?

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

function selectedDay(date) { 

    // Do stuff 

    return [true, 'class_name']; 
} 

Như bạn có thể thấy, các thông số date được tự động truyền cho phương thức selectedDay, do đó làm cho tôi không chắc chắn như thế nào để vượt qua một tham số thứ hai.

Chúc mừng.

Trả lời

16

tôi đã tự hỏi về cùng một câu hỏi và tôi nghĩ rằng tôi đã tìm thấy câu trả lời:

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

Nếu tôi hiểu đúng, bạn chỉ có thể tạo ra chức năng khác và vượt qua bất kỳ params bạn muốn:

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

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

Hi. Tôi nhận được những gì bạn đang nói, nhưng tôi vẫn cần phải chuyển 'param' vào hàm' selectDay'. – Jarrod

0

Bạn có thể viết một hàm trả về một mảng các ngày

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

và sau đó

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

chỉ là một ý tưởng, tuyệt đối không chắc chắn nếu nó hoạt động

0

Tôi đã sử dụng phương pháp không tốt nhất để giải quyết vấn đề của mình. Tôi chỉ cần thực hiện tham số thứ hai để vượt qua toàn cầu. Nó sẽ làm công việc trong thời gian này.

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

var my_param = x; 
function selectedDay(date) { 

    // Do stuff, use my_param 

    return [true, 'class_name']; 
} 
Các vấn đề liên quan