2012-02-03 9 views
2

javascript/jqueryの1行に問題があります。私は、特定のクラスを持つすべてのオブジェクトを選択し、最初のオブジェクトクラスに格納されているIDを使用して別のオブジェクトにトリガーを作成しようとしています。Javascript/JQueryクラスセレクタの問題

JS/JQ:
$('.navs').click(function(){$("#"+$(this).attr('tab')+"").trigger('click');})

HTML:
<img alt="" class="thumbnail" src="gamedev_thumb.png" class="navs" tab="gamedev"/>

私はこの問題であればわかりませんが、このコードはdivの上にロードされたページの断片でありますメインページ。私はナビゲーションを制御するために上部にタブを持っていますが、簡単にするために、画像の上に適切なタブをクリックするようにしたいと思います。

答えて

5

classという属性が2回あります。断片は、ページが読み込まれた後、残念ながら、あなたのセレクタ$('.navs')が既に実行されたAJAXでロードされている場合

<img alt="" class="thumbnail navs" src="gamedev_thumb.png" tab="gamedev"/> 

とあなたのイメージは、その一部ではありません:あなたは間違いなく同じクラス属性の中にいくつかのクラス名を置くことができますフラグメントが読み込まれてドキュメントに追加された後に、JavaScriptコードを実行する必要があります。

私はあなたがフラグメントをロードする方法を知りませんが、1つの方法は、あなたがそれを使用した場合.LOAD()メソッドのコールバックを使用することです:

$('#mydiv').load(url, function() { 
    $('.navs').click(function(){ 
     $("#"+ $(this).attr('tab') + "").trigger('click'); 
    }) 
}); 

注意をあなたとフラグメントを読み込む場合は、その(たとえば "mypage.html #mydiv")、すべてのjavascriptブロックが削除されます。

jQuery .load()

+0

ページがロードされると、それが実行ので、私は、ページフラグメントにJSを置きます。クラスタグを修正して固定しました。本当にありがとう! –

+1

彼があなたに与えた答えがあなたの問題を解決したら、あなたはそれをそのようにマークするべきです。 –

+0

私はそれを待たなければならなかった:)私はちょうど今戻ってきた。 –

関連する問題