2010-02-22 35 views
7

Tôi muốn làm nổi bật một số ngày trong tháng hiện tại. Tôi có thể thực hiện việc này vào tháng đầu tiên, nhưng không phải vào tháng mới sau "tháng tiếp theo" hoặc "tháng trước" được nhấp vào. Tôi đã thử sử dụng sự kiện onChangeMonthYear nhưng điều này thực hiện trước khi tháng mới (hoặc trước) hiển thị.Trình kích hoạt Jquery Datepicker sau khi thay đổi tháng (sau khi hiển thị tháng)

bất kỳ ý tưởng nào?

+0

Đây là chiếc kẹp đơn lớn nhất của tôi với nhà phát triển plugin jQuery - Tôi chưa thấy nơi họ kích hoạt sự kiện tùy chỉnh để những người như bạn và tôi có thể nhận một số chức năng tùy chỉnh. –

+0

@Peter Mỗi sự kiện tùy chỉnh được sử dụng trong giao diện người dùng jQuery được ghi lại chi tiết trên trang web giao diện người dùng jQuery. –

+0

@ Alex, bạn bỏ lỡ quan điểm của tôi. Plugin sẽ kích hoạt các sự kiện của riêng chúng để các tập lệnh gốc có thể bắt được và thực hiện hành động. Một cái gì đó như '$ (this) .trigger ('ui-datepicker: after-month-loaded')' sẽ cho phép user278860 làm những gì anh ta yêu cầu - anh ta chỉ cần thêm '$ .bind()' –

Trả lời

1

Bạn có thể thực hiện việc này với jQuery datepicker bằng cách sử dụng tùy chỉnh "renderCallback".

ví dụ: This example vô hiệu hóa các ngày cuối tuần và thêm lớp học để tạo kiểu cho những ngày đó. Có rất nhiều khác hơn complex examples mà có thể giúp quá ...

$('.date-pick') 
    .datePicker(
     { 
      renderCallback:function($td, thisDate, month, year) 
      { 
       if (thisDate.isWeekend()) { 
        $td.addClass('weekend'); 
        $td.addClass('disabled'); 
       } 
      } 
     } 
    ); 

Ngoài ra, nếu bạn muốn, có một sự kiện dpMonthChanged khi lịch đã tái render và bạn có thể lặp về nội dung của lịch và làm nổi bật của bạn ...

0
 hack: 
     $('#calendar').datepicker({ 
            onChangeMonthYear: function (year, month, inst) { 
             setEventsDay() 
            } 
           }); 
function setEventsDay(){ 
    var days = $(".ui-state-default"); 
        console.log(days.length); //31 from august to Sep 
     setTimeout(function() { 
        var days = $(".ui-state-default"); 
        console.log(days.length);  //30 `enter code here`from august to Sep 

       }, 100) 
    } 
Các vấn đề liên quan