2017-06-15 3 views
1

ファイルに動作していませんここに。私の問題は、このコードは私の.jsファイルで作業していないされているが、私はコピーして貼り付ける場合、それはあなたが同じ高さには、.jsファイルは、私は基本的に以下のように書いた機能を持っている

Please click to my real demo

表示されますしようとすると私のコードは非常に取り組んでいるコンソールとgetListHeight();をコピーして、コンソールあなたに貼り付けなぜ私のコードが.jsファイルで正しく動作していないのですか?私のコードを動かすためには何が必要ですか?

と私のgetListHeight()関数は$(window).resizeで動作します。ウィンドウのサイズを変更したり、クリックイベントが発生しても、関数がdocument.readyで機能していません。

+0

ドキュメントの準備ではなく(または追加して)ウィンドウロードで呼び出す –

+2

同期の問題?これは、document.ready()イベントが発生したときに、まだロードされていないイメージがあるためですか?フルロード後に関数がresize()イベントで機能する場所を記述した症状は、document.ready()がまだすべての要素を持っていないことを示唆しています。 Document.ready()はイメージがロードされるのを待たずにいると思います。 –

+0

@モート・バードワイより最近ロードされているので、これは私が望むものではありません。@征服されたウォンバットなので、どうすれば自分のコードを変更できますか? –

答えて

2

画像がまだ読み込まれていないため、画像タグはそこにありますが、まだ画像が読み込まれているためにサイズが設定されていないため動作しません。

私を次のようにコードを変更したい:

function matchSize() { 
    var getTurHeight = $(this).parents(".tur-list").find(".col-lg-7").outerHeight(); 
    var getLeftHeight = $(this).parents("tur-list").find(".col-lg-5 figure img").outerHeight(); 
    if (getTurHeight > getLeftHeight) { 
    $(this).outerHeight(getTurHeight); 
    } 
} 
function onResize() { 
    $(".tur-list .col-lg-5 figure img").each(matchSize); 
} 
function getListHeight() { 
    $(".tur-list .col-lg-5 figure img").load(matchSize); 
} 

$(document).ready(function(){ 
    getListHeight(); 
    $(document).on('resize', onResize) 
    onResize() 
}); 

これは(おそらくキャッシュされた画像)でのJavaScriptのキックの前にリサイズに、新しくロードされた画像上、および以前にロードされた画像上で動作します。 https://codepen.io/Bamieh/pen/gRLPqm

P.S.:ここ

はcodepenフォークへのリンクです私はあなたがスタイルを変更するとすぐにコードが破損するので、セレクタとしてcol-*クラスに頼らないことをお勧めします。data-*属性を使用して、私の意見になる方法です。

+0

私はcodepenを試していただきありがとうございますが、例のためにはうまくいきませんでした: https://codepen.io/cowardguy/pen/qjqbMW –

+0

codepenでお持ちいただきありがとうございます!私は2番目に答えを更新します – Bamieh

+0

@ani_css今答えを確認してください – Bamieh

関連する問題