2010-07-14 30 views
7

Điều này phải đơn giản, nhưng tôi ngu ngốc nên ...Lập trình kiểm tra xem lịch có được hiển thị hay không

Tôi muốn thực hiện một câu lệnh điều kiện đơn giản để xem lịch đã được hiển thị trong div chưa . Một cái gì đó như thế này:

if ($('#calendar').fullCalendar()) 
{ 
    alert("calendar exists!!"); 
} 

Tôi muốn thực hiện việc này để tôi có thể xóa, sau đó bắt đầu lại lịch theo chương trình. Về cơ bản, nút 'đặt lại'.

Ai đó có thể vui lòng cho tôi biết cú pháp thích hợp để kiểm tra xem đối tượng fullCalendar đã được hiển thị chưa?

Cảm ơn bạn trước !!

Trả lời

6

Tôi đã tìm ra. jQuery có một bộ chọn .children(). Tôi đã có thể làm một tuyên bố có điều kiện trên .length tài sản của selector đó để xem nếu có bất kỳ nội dung trong div:

if ($('#calendar').children().length > 0) { 
    alert("calendar exists!!"); 
} 

Một cách khác để làm điều này, mà không cần jQuery, là:

getElementById('calendar').hasChildNodes() 
+0

Nếu bạn chọn cho một cái gì đó sâu sắc hơn trong cấu trúc của lịch bạn sẽ có nhiều khả năng bắt được nó sau khi nó được thực hiện rendering. – jasongetsdown

0

Đây là loại hack, nhưng mỗi ô ngày có một lớp với định dạng fc-day-##. Ô cuối cùng có số 41 (kiểm tra nó trong con bọ lửa). Bạn có thể thử chọn td.fc-da-41 và nếu bạn nhận được bất kỳ yếu tố nào thì lịch sẽ được tải đầy đủ.

if ($('td.fc-day-41').size() > 0) { 
    //calendar ready 
} 

Có lẽ thiết lập nó để kiểm tra mỗi vài trăm mili giây với .setTimeout()

var checkCal = function() { 
    if ($('td.fc-day-41').size() > 0) { 
     //calendar ready 
    } else { 
     window.setTimeout(checkCal(), 200); 
    } 
} 
0

Bạn có thể kiểm tra cái gì đó như một cách dễ dàng

if($('#calendar>*').length !== 0) alert("calendar exists!!"); 
Các vấn đề liên quan