我正在开发的wordpress网站正在使用QTip工具提示功能抛出错误。我使用的主题称为Eventum,工具提示包含在Event Espresso插件的日历中。使用默认的WP主题,日历工作正常,但使用Eventum主题时,它会出现以下错误:
Uncaught TypeError: (intermediate value)(intermediate value)(intermediate value).done is not a function
at QTip.PROTOTYPE._waitForContent (jquery.qtip.js?ver=2.2.0:633)
at QTip.PROTOTYPE._update (jquery.qtip.js?ver=2.2.0:618)
at QTip.PROTOTYPE._updateTitle (jquery.qtip.js?ver=2.2.0:642)
at QTip.PROTOTYPE.render (jquery.qtip.js?ver=2.2.0:187)
at QTip.<anonymous> (jquery.qtip.js?ver=2.2.0:1501)
at d (jquery.js?ver=1.12.4:2)
主题使用wp_enqueue_script来实现JQuery功能,除此之外我无法理解为什么它不起作用。从qtip.js文件中断的函数是:
PROTOTYPE._waitForContent = function(element) {
var cache = this.cache;
// Set flag
cache.waiting = TRUE;
// If imagesLoaded is included, ensure images have loaded and return promise
return ( $.fn.imagesLoaded ? element.imagesLoaded() : $.Deferred().resolve([]) )
.done(function() { cache.waiting = FALSE; })
.promise(); };
任何想法如何修复错误?
答案 0 :(得分:-1)
我认为在Worpress你不能直接使用$。不确定为什么他们不添加,但尝试使用jQuery
代替$
好的,我认为这个问题仍然存在于javascript中。看看你的主题中是否定义了$ .fn.imagesLoaded和$ .Deferred。它看起来像一个或其他没有定义,并没有返回promise()所以undefined.done()抛出一个错误。如果定义了imagesLoaded(),那么我不认为应该抛出那个错误。很可能它没有被定义,因此它属于$ .Deferred()函数,它也是未定义的。您可能需要获取imagesLoaded函数并包含该脚本。哪个最有可能解决您的问题