簡體   English   中英

WordPress JQuery沖突(主題和插件)

[英]Wordpress JQuery Conflict (theme and plugin)

我正在開發的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();  };

任何想法如何解決該錯誤?

我認為在Worpress中您不能直接使用$。 不知道為什么他們不添加,而是嘗試使用jQuery而不是$

更新

好的,我認為問題仍然在於javascript。 查看是否在主題中定義了$ .fn.imagesLoaded和$ .Deferred。 看起來一個或另一個未定義且未返回promise(),因此undefined.done()引發錯誤。 如果定義了imagesLoaded(),那么我認為它不會拋出該錯誤。 很可能沒有定義,因此它屬於$ .Deferred()函數,該函數也未定義。 您可能需要獲取imagesLoaded函數並在其中包含該腳本。 哪個最有可能解決您的問題

http://imagesloaded.desandro.com/

https://api.jquery.com/jquery.deferred/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM