gpt4 book ai didi

javascript - AJAX 页面更新后重新初始化 jQuery 插件

转载 作者:行者123 更新时间:2023-11-30 05:43:50 25 4
gpt4 key购买 nike

我在主页上有一个图片轮播。为了呈现它,我使用 Jquerytools(可滚动+导航器)

我以这种方式触发 jQuery 初始化程序脚本:

$(window).load(function(){
$("#today-news-carousel").scrollable({ vertical: true, mousewheel: true }).navigator({ navi: '#today-news-navigator' });

});

这个轮播的内容可以通过AJAX调用来更新。在这个电话之后,我需要重新初始化这个轮播。这里是进行 AJAX 调用的函数:

  $(document).on('click', '.nav-highlight', function() {

var requestDateArray = $(this).attr('data-thedate').split('-');
var d = new Date();
var requestedDate = new Date(requestDateArray[0], (requestDateArray[1]-1), requestDateArray[2]);
var today = new Date(d.getFullYear(), d.getMonth(), d.getDate());
if (requestedDate > today) {
return
}else {
$.ajax({
type: "POST",
url: templateDir+'/highlight-news-navigator.php',
context: this,
dataType: "html",
data: { date: $(this).attr('data-thedate') },
beforeSend: function(){
},
success: function(data) {
$('.today-news').fadeOut('fast', function(){
$(this).empty().html(data).fadeIn('fast');
});
},
complete: function(){
$("#today-news-carousel").scrollable({ vertical: true, mousewheel: true })
.navigator({ navi: '#today-news-navigator' });
}
});

}

});

在“完成”回调函数中,我尝试重新初始化插件,但在控制台中出现以下错误:

TypeError: $(...).scrollable(...).navigator is not a function
.navigator({ navi: '#today-news-navigator' });

我不明白为什么它在我加载页面和重新初始化时都能正常工作,它似乎找不到 .navigator 方法...

最佳答案

感谢 Archer 的帮助,我找到了解决方案。重新初始化插件的脚本必须位于 fadeIn() 回调中。这里是工作代码:

  $(document).on('click', '.nav-highlight', function() {

var requestDateArray = $(this).attr('data-thedate').split('-');
var d = new Date();
var requestedDate = new Date(requestDateArray[0], (requestDateArray[1]-1), requestDateArray[2]);
var today = new Date(d.getFullYear(), d.getMonth(), d.getDate());
if (requestedDate > today) {
return
}else {
$.ajax({
type: "POST",
url: templateDir+'/highlight-news-navigator.php',
context: this,
dataType: "html",
data: { date: $(this).attr('data-thedate') },
beforeSend: function(){
},
success: function(data) {
$('.today-news').fadeOut('fast', function(){
$(this).empty().html(data).fadeIn('fast', function(){
$("#today-news-carousel").scrollable({ vertical: true, mousewheel: true }).navigator({ navi: '#today-news-navigator' });
});
});
},
});

}

});

关于javascript - AJAX 页面更新后重新初始化 jQuery 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19184603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com