【发布时间】:2014-10-01 09:35:39
【问题描述】:
我有一个 wordpress 博客,我在其中发布了一个带有 flexslider 的帖子(插件的名称是元滑块)。
现在我在该博客上有一个页面,该页面使用 AJAX 从帖子中动态加载 div 的内容。 代码如下:
$(".post-link").click(function(){
var post_link = $(this).attr("href");
$("#refpage-single-post-container").html("content loading");
$.get(post_link, function(result){
$result = $(result);
$result.find('div.entry-content').appendTo('#refpage-single-post-container');
$result.find('script').appendTo('#refpage-single-post-container');
}, 'html');
//e.preventDefault();
return false;
});
这基本上可以正常工作,但是之后滑块 JS 失败并出现以下错误:
(来自 Chrome 的虚拟机错误)
Uncaught TypeError: undefined is not a function VM4036:3
metaslider_531 VM4036:3
timer_metaslider_531 VM4036:18
(anonymous function) VM4036:20
(anonymous function)
以下是滑块脚本(以空行开头):
var metaslider_531 = function($) {
--> $('#metaslider_531').flexslider({
slideshowSpeed:3000,
animation:"fade",
controlNav:true,
directionNav:false,
pauseOnHover:true,
direction:"horizontal",
reverse:false,
animationSpeed:600,
prevText:"<",
nextText:">",
slideshow:true
});
};
var timer_metaslider_531 = function() {
var slider = !window.jQuery ? window.setTimeout(timer_metaslider_531, 100) : !jQuery.isReady ? window.setTimeout(timer_metaslider_531, 1) : metaslider_531(window.jQuery);
};
timer_metaslider_531();
所以我的问题是:我该如何解决这个问题?我可以以某种方式重新初始化那个 JS 吗?
对我来说,.flexslider 函数调用似乎失败了,因为原型未设置在 ID 为 $('#metaslider_531') 的那个(新)html div 上,因此是“未定义”(?)。也许是胡思乱想。
我检查的是可能会加载哪些版本的 jQuery,但它看起来只加载了一次 v1.11.0,所以我应该“无冲突”。
我对 JS 和 AJAX 还很陌生,所以如果能帮助我解除迷雾,我将不胜感激。 :)
【问题讨论】:
-
页面上已经加载了jQuery,为什么还要检查它是否准备好?
-
我不知道,在下面查看我的答案
标签: javascript jquery ajax flexslider typeerror