2011-04-04 108 views
1

我試圖讓jquery ui datepicker(內聯日曆)與tooltip一起工作。一切工作正常,工具提示顯示,直到我在日曆中更改月份。然後工具提示停止工作。我不知道如何解決這個問題,我會很感激任何幫助。 以下是我的代碼(我正在使用this腳本)。jquery ui datepicker with tooltip - tooltip function not call after month change

謝謝!

$(function() { 

var specialDays = { 
    '2011': { 
    '3': { 
     '10': {tooltip: "Some event", className: "holiday"} 
    }, 
    '4': { 
     '15': {tooltip: "Some another event", className: "holiday"} 
    } 
    } 
}; 

$('#datepicker').datepicker({beforeShowDay: function(date) { 
    var d = date.getDate(), 
    m = date.getMonth()+1, 
    y = date.getFullYear(); 

    if (specialDays[y] && specialDays[y][m] && specialDays[y][m][d]) { 
    var s = specialDays[y][m][d]; 
    return [true, s.className, s.tooltip]; // selectable 
    } 
    return [false,'']; // non-selectable 
}}); 

/* tooltip*/ 
$(".ui-datepicker-calendar tbody").tooltip(); 

});

+0

什麼提示你正在使用腳本? – Simeon 2011-04-04 09:04:56

+0

是一個jQuery UI的工具提示[鏈接] http://view.jqueryui.com/master/demos/tooltip/default.html [/ link] – gordon 2011-04-04 09:24:00

回答

0

將功能$('#datepicker').datepicker包裝在一個函數中。然後,在加載工具提示時,將該函數名稱作爲回調傳遞給工具提示函數。

事件未綁定的原因是因爲HTML正在改變。

進一步解釋:在工具提示腳本行115還有就是你可以使用回調的事件:

var initDatepicker = function(){ 
    $('#datepicker').datepicker({beforeShowDay: function(date) { 
     // Your code... 
    }}); 
}; 

$('.ui-datepicker-calendar tbody').tooltip({ 
    // On tooltip open, init the datepicker 
    open: initDatepicker 
}); 
+0

我試過這個(不知道如果正確),但它似乎並沒有工作.. 。 – gordon 2011-04-04 10:15:14

+0

查看我的更新回答。這不行嗎? – Simeon 2011-04-04 10:35:06

+0

現在日曆根本沒有顯示。但是在螢火蟲中沒有js錯誤。 – gordon 2011-04-04 10:57:45

2

利用這一點,它的工作對我來說:

onChangeMonthYear: function(year, month, inst) { 
          setTimeout("$('.ui-datepicker-calendar tbody').tooltip()", '250');        
         }