2011-02-08 13 views
1

I asked this question the other dayと判明しました.jQueryをajax呼び出しの後で動作させるには、.delegate()を使用する必要があります。.delegate()をどのようにして動作させるか

$('.projects').hover(function(){ 
    $defBox.stop(true, true) 
     .fadeToggle(1000) 
     .html('<p>Hover The links to see a description</p>'); 
    }); 

をし、これに、それを変更:アヤックスはちょうど私が

を試した後、完全に動作を停止しだから私は試した

$('.projects').delegate($defBox, "hover", function(){ 
    $defBox.stop(true, true) 
     .fadeToggle(1000) 
     .html('<p>Hover The links to see a description</p>'); 
    }); 

と:

$('.projects dl').delegate($defBox, "hover", function() { 
    .fadeIn(1000); 
}, function() { 
    fadeOut(1000); 
}); 

をどちらもまだなかったです作業。私が間違っていることは何ですか?

また、これはエーテルを働かせません。発火する

$('#main-container').delegate('.projects', 'hover', function(){ 
    // and so on 

ホバーイベントを(のMouseEnter/mouseleave):あなたのマークアップを見ずに言うことができますが、main-containerにロードしているので、私はあなたがこれをしたい推測している

$('#main-content').load(toLoad, function() { 
    $("#foo").tinyscrollbar(); 
    $("#bar").facebox(); 
    // etc 
}); 
+0

.fadeIn( '1000);と.fadeOut( '1000);?それらのバッククッキーは属しません。打ち間違え? –

+0

それはタイプミスです。 – nowayyy

答えて

1

ハード.projectsの要素は、追加時に関係なく#main-containerの内部にあります。

+0

それで、すべてを読み込んでデリゲートするラッパーを選択する必要がありますか? – nowayyy

+0

@Trippy、もし私があなたを理解しているなら、はい。 '.delegate()'が動作する方法は、コンテナに置かれることです。コンテナ内の要素がイベントを受け取ると、要素は '.projects'セレクタ(この場合)と比較されます。要素がセレクタと一致した場合、ハンドラが呼び出されます。 – user113716

+0

申し訳ありませんが、これは後で試してみますが、もう1つの質問ですが、.hover()を委任して別の関数を追加しないで変更することはできますか?のように、これは必要ですか? 'function(){ .fadeIn( '1000); }、function(){' – nowayyy

関連する問題