2017-03-23 27 views
0

私は開発中のQTipツールチップ機能でエラーが発生しました。私が使用しているテーマはEventumと呼ばれ、ツールチップはEvent Espresso Pluginのカレンダーに含まれています。デフォルトのWPのテーマを使用すると、カレンダーがうまく動作しますが、Eventumのテーマと、それは次のエラーを与えている:Wordpress JQuery Conflict(テーマとプラグイン)

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) 

なぜ私が見ることができないよりも、テーマはjQueryの機能と他のためにwp_enqueue_scriptを使用しています動作していません。 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(); }; 

どのようにエラーを解決するには?

答えて

-1

私はWorpressでは$を直接使用できないと思います。彼らはそれを追加する代わりに、[OK]を$

UPDATE

jQueryにしようとしない理由はわからない、私は問題はJavaScriptを使用して、まだだと思います。あなたのテーマに$ .fn.imagesLoadedと$ .Deferredが定義されているかどうかを確認してください。 1つまたは他のものが定義されておらず、promise()を返さないように見えるので、undefined.done()はエラーをスローします。もしimagesLoaded()が定義されていれば、私はそれがそのerorを投げるべきだとは思わない。おそらく定義されていないので、$ .Deferred()関数の下にあります。これも未定義です。 imagesLoaded関数を取得してからそのスクリプトをインクルードする必要があります。最も可能性の高いQTip.jsファイル

http://imagesloaded.desandro.com/

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

+0

あなたの問題を解決し、どの別のテーマで動作します - そこに競合がどこかのテーマの中で、私はそれを修正するかどうかはわかりません。 このスレッドのトピックをwordpressに切り替えるにはどうすればよいですか?それはJSよりWPにもっと関係している(明らかに両方がある)。 – andersan

+0

応答ありがとう! 私はbose imagesLoadedとDeferredが定義されていると信じていますが、私は100%確信していません - 私は様々なJS/JQuery関数宣言のためのgrepを実行しましたが、私は両方の関数(関数のいくつかの異なる宣言/ 。 QTip関数は、いずれかの関数が宣言されていないデフォルトのwordpressテーマを使用して動作します。宣言はテーマではなくWordpressプラグイン(Event Espresso)にあります。 – andersan