2011-01-09 5 views
1

私はプラグインを作成し、問題が何かを持っています:場合jqueryプラグインでダイナミックに作成された要素にイベントを再バインドするにはどうすればよいですか?

:その後、

<ul id='ulist'> 
    <li>list 1</li> 
    <li>list 2</li> 
    <li>list 3</li> 
</ul> 

リー:

私はアヤックスで作成された非リストのリストを持っているとして.suchロードをそれらがロードされたときホバーイベントとバインドされました。以下のような:

$('ul').bind('hover',function(){}); 

が、私のプラグインロードされていたUL [ID =「ULIST」] .ANDホバーを取得していない新しいリチウムに新規のli項目を追加する、動的に機能していました .Suchを結合イベントは:

addNewLi : function(){ 
    $('<li />').html('item N').appendTo('#ulist'); 
} 

だから、私は新しい動的に「ライブ」で要素を作成してバインドする必要があります知っていたが、それを置くか、他の方法を持っているところ私は知りません... 。

ありがとうございます!

答えて

1

hoverの機能をliveまたはdelegateに使用することはできません。その機能はjQuery 1.5のために計画されています。

mouseentermouseleaveの2つのイベントのショートカットは実際にはhoverなので、実際にはこれらのイベントを使用して機能を模倣するのは簡単です。 delegateを使用して

例:

$('#ulist').delegate('li', 'mouseenter', function() { 
    // code for mouseenter 
}).delegate('li', 'mouseleave', function() { 
    // code for mouseleave 
}); 
+0

あなたはライブ/デリゲートと ' 'hover''を使用することができますが、あなたはそれに2つの機能を渡すことはできません。代わりに、イベントタイプをテストする必要があります。依然としてデリゲートソリューションの+1。 – user113716

+0

@patrick dwこれを反映するために私の答えを明確にしました、ありがとう。 – lonesomeday

+0

私のためにうまく動作!どうもありがとうございました!あなたは私のプラグインをコード化する別の方法を私にくれました! – qinHaiXiang