2016-11-08 4 views
0

js.erbで部分を再レンダリングすると、domにどうなりますか?私はもはやクリックイベントを得ることができません。js.erbの部分をレンダリングするときにクリックイベントが発生しない

this tutorialに基づいて、私はjs.erbパーシャルを再レンダリングするためにそれに従っています。リンクされたページの "cat.name"ボタンをクリックすると、そのページに私がクリックイベントを聞いているが動作していない別のボタンが表示されます。

実行停止:

インデックスページで、イベントの動作をクリックします。 from_categoryのリクエストを行うと、クリックイベントは発生しません。だから本当に何が起こるのですか?

HTML:

<button id="test" value="ok">click</button> 

JS:あなたがイベントを新しく作成したDOM要素にバブルにイベントをevent delegationを使用する必要があり、新たなDOM要素に結合しない]をクリックし

$("#test").on("click", function(e) { 
    console.log(e.target.value) 
}); 

答えて

2

$('body').on('click input keypress','.the_dynamic_element',function(){ 

}); 
+0

このように、基本的には、$( "#test").on( "click"、 "button"、function(e){...}) 'が必要です。動作しません。 – Sylar

+0

OH!私は体をターゲットにする必要がありますか?それは良い方法ですか? – Sylar

+0

ajaxによって追加されていない最も近い要素 – madalinivascu

1

体にイベントをバインドする必要はありません。この形式を使用して、前夜をバインドすることはできますntをセレクタに設定

$(document).on('click', '#test', function(e) { 
    console.log(e.target.value) 
}); 
関連する問題