1

ページの読み込み時に関数を実行しようとしていますが、機能していません。考えられるすべての場所に追加しましたが、機能するのは次のとおりです。

$("html").mousemove(function(event) {
    $('#project_thumbs_container').masonry('reload');
});

私は遅延を試みましたが、上記のハッキーな方法に頼りました:(

私の関数が実行されない理由について誰か提案がありますか?

アップデート:

私はjqueryに石積みを使用しています。私の問題は、ajax で組積造を使用するページを読み込むと、それらが 1 つの列に表示されることです。適切にリセットしますが、上記の方法$('#project_thumbs_container').masonry('reload');を使用した場合にのみ機能します。mousemove

4

4 に答える 4

1

次の 2 つの問題のいずれかが発生しているようです。

1) 不正な形式の HTML がエラーを引き起こし、ドキュメントの onReady 構文を使用したときにコードを正しく解析できません: $(function() { ... });

2) Masonry が非同期的にロードされている可能性があります。つまり、「onReady」コールバックが、使用したいものではない可能性があります。Ajax 呼び出しは次のようになります。

$('body').load('index.html', function() {
  $('#project_thumbs_container').masonry();
});
于 2011-10-19T23:38:51.007 に答える
1

fadeIn();誰かがより良い答えを持っていない限り、ajax 呼び出しが完了した後、コードをスニペットに入れます。

this.fadeIn('slow', function() {
  $('#project_thumbs_container').masonry('reload');
});

うまくいくようです。

于 2011-10-20T00:19:49.113 に答える
0

これにあなたの関数を入れるだけです

$(document).ready(function() {
  // Handler for .ready() called.
  // your function 
});

ページが読み込まれると、関数が実行されます

于 2011-10-20T11:54:16.647 に答える
0

このようなことを試してください。

$(document).ready(function(){
    $('#project_thumbs_container').masonry('reload');
}); 

このコードはページのどこにでも置くことができ、依存関係がすでにロードされている限り、機能するはずです。

于 2011-10-19T23:10:56.003 に答える