2017-03-31 3 views
0

私は、プラグインによって生成されたサムネイルタイルを取得し、それをDOMのどこかに投げるjQuery関数を持っています。この機能は半分の時間で機能します。jQuery worksページの3/4がロードされています

私がこのようにしなければならなかったのは、プラグインがページの読み込み時にHTMLの半分を自動的にレンダリングし、CSSソリューションがひどいためです。私は容器をお互いにあふれさせなければならなかった。それはひどいハッキーだった。

プラグインはサムネイル付きの画像です。サムネイルがクリックされるたびに、対応する写真がメインの画像枠内に表示されます。

コード:

setTimeout(function(){ 
    $('ol').append('<li data-toggle="modal" id="thumb" class="yt-thumb" overflow-scroll="false" overflow-scroll="true" data-target="#youtubeModal"><img src="/images/dome-thumb.jpg" /></li> '); // add youtube to thumb slider 
    $('ol').appendTo($('#thumb-area')) 
}, 2000); 

それはsetTimoutである理由、それはプラグインがコードを生成する際に遅延があると思われます。残念ながら、プラグインは全体的なテーマの一部であり、コードを投稿することができないので、あいまいなアイデアを歓迎します。

+0

一つの漠然としたアイデアは、[ 'MutationObserver'](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver)をリッスンするために使用を検討することですプラグインがコードを生成するDOMの部分に変更されます。 –

答えて

0

私はMutationObserverがおそらく最良のアプローチであることに同意します。

これを処理する別の方法は、DOMがあなたのために準備ができていない場合に変換を再試行する機能を持たせることです。このような何か:

function transformThumbnails(iteration) { 
    if (iteration === undefined) { 
    iteration = 0; 
    } 
    else if (iteration < 100) { // don’t retry forever 
    var isReady = true; // TODO: test if DOM is ready for your transformation 
    if (isReady) { 
     $('ol').append('<li data-toggle="modal" id="thumb" class="yt-thumb" overflow-scroll="false" overflow-scroll="true" data-target="#youtubeModal"><img src="/images/dome-thumb.jpg" /></li> '); // add youtube to thumb slider 
     $('ol').appendTo($('#thumb-area')) 
    } 
    else { 
     // not ready, so retry 
     setTimeout(function(){transformThumbnails(iteration + 1);}, 100); 
    } 
    } 
} 
transformThumbnails(); // kick it off 
+0

コードを追加する必要があります。 $(document).ready関数でこれをスローしました。私はこれと同じかどうかをテストすると思いますか? – Quesofat

+1

"isReady"を設定することは、実装するための練習です。ごめんなさい。プラグインの完了をテストする方法がわからない はい、これはdocument.readyの後に呼び出す必要があります。私のポストのポイントは、再試行のメカニズムを実装する方法を示すことでした。私は過去にこのようなコードを使ってきました。それはかなりではありませんが、それは動作します。 –

+0

残念ながら、これは効果がありませんでした。私はどのように変異観察者を導入するだろうか?突然変異観察者apiに関する文献はあまりないようです。 – Quesofat

関連する問題