【发布时间】:2013-10-04 15:04:40
【问题描述】:
我在主页上有一个图像轮播。为了呈现它,我使用 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 方法...
【问题讨论】:
-
是否有理由将重新初始化代码放入
complete,而不是success?它更适合fadeIn()回调。没有承诺,但值得一试。 -
你太棒了!!!我整个下午都在这个问题上!把它放在 fadeIn 回调中工作正常!再次感谢您!
-
...或者代替
$.ajax({}).done? -
你能把它作为答案发布,这样它就不会显示为未回答吗?
标签: javascript jquery plugins jquery-tools