0

すべてが完璧に機能するという興味深い問題に直面しています。私はすべてのステップをconsole.logに記録し、本来あるべき方法で再生します。しかし!私は .load(a-file.php) に #div を持っています。「a-file.php」には HTML マークアップも含まれています。より具体的には、「アクティブ」オンロードにしたい特定のリンクです。

シナリオ; ページの読み込みが発生すると、JavaScript がファイルを読み込んで div に読み込みます。その div にはタブがあり、最初のタブを addClass('active'); が必要な「アクティブ」状態にしたいと考えています。しかし、以下は効果がないようです

$('#content').load('file.php'); // works.
$('#content a[rel="weird-page"]').addClass('active'); // does not work.

どんな種類の助けも、リモートでそれを釘付けにしても大歓迎です。

4

2 に答える 2

1

への変更:

$('#content').load('file.php', function() {
   $('#content a[rel="weird-page"]').addClass('active');
}); 
于 2013-02-28T09:47:13.933 に答える
1

jQueryload()は非同期で動作するため、完了addClass()する前にメソッドが呼び出されますload()

コールバック関数を使用load()すると、コンテンツがロードされたことを確認できます。

$('#content').load('file.php', function() {
   $(this).find('a[rel="weird-page"]').addClass('active');
});

恥知らずのプラグ警告: jQuery のコールバック関数に関するブログ記事を書きました。役に立つかもしれません。

于 2013-02-28T09:54:29.747 に答える