0

我正在实现一个页面 jquery 选项卡切换,它从页面上的隐藏 div 加载内容。在其中一个隐藏页面上我有一个日历弹出窗口(jQuery.UI api的一部分。这可以在它自己的页面上找到,但是当我将它添加到隐藏块然后将该块加载到可见窗口中时,我失去了日历正确弹出。我尝试使用 live 没有运气 - 它适用于这些隐藏的 div 页面上的其他事件绑定元素。

这是我在做什么的示例:

$(".tab-toggle").live("click",function() {
  alert("test");
  $(".calendar-class").datepicker({showOn: 'both', buttonImage: 'images/icon-calendar2.gif', buttonImageOnly: false, changeMonth: true, changeYear: true, yearRange: '2009:2015'});
}); 

警报会在每次页面加载时触发,但日历不会重新绑定到事件。

$(".calendar-class").datepicker({showOn: 'both', buttonImage: 'images/icon-calendar2.gif', buttonImageOnly: false, changeMonth: true, changeYear: true, yearRange: '2009:2015'});

在立即加载到可视窗口中的页面中工作正常,但是当我切换到另一个页面然后返回时停止工作......

4

1 回答 1

0

我做了同样的事情,但我没有使用 Jquery UI 切换它。相反,我做了一个基本的显示/隐藏。

可以在这里看到

这是我使用的 jQuery:

$("#changeSortCal").click(function(){
    $("#search_choose_cal").hide();
    $(".calendarContainer").slideDown('slow');
});
$(".calendar-close-button").click(function(){
    $(".calendarContainer").hide();
    $("#search_choose_cal").slideDown('slow');
});

.live或者.bind不需要,因为 DatePicker 是在 pageLoad 上加载的。

于 2011-02-26T03:16:41.123 回答