特定の情報を取得するパーシャルをレンダリングするために AJAX 呼び出しを起動する非常に複雑なフォームがあります。
ボタンのように動作する要素に .on('click') イベントをバインドしたいという特定のシナリオで壁にぶつかりました。問題は、この要素が、部分的な更新中に破棄される他の要素内に深くネストされていることです。HTML の例を次に示します。
<div id="locations_grid"><%= render 'table' %>
そしてパーシャルの場合:
<fieldset>
<legend>List</legend>
<div class="lists>
<div class="project_list">
<div id="pagination_link">
<a class="more">
More records
</a>
</div>
</div>
</div>
</fieldset>
私の例から、「クリック」イベントを「more」クラスにバインドしたいと考えています。これは、div とフィールドセットの配置でネストされています。「location_grid」がhtmlをレンダリングするのを見ると、これが.on()イベントのアンカーポイントになり、部分がリフレッシュされた後に破棄されないので、私の最初の試みは次のとおりでした:
$('#locations_grid').on('click','.more', function(){
//do something
});
ただし、(私の理解では)「.more」は「#locations_grid」の直接の子ではないため、これは機能しないと思いました(そして機能しませんでした)。したがって、これまでの私の試みは、次のさまざまな組み合わせでした。
$('#locations_grid').on('click','fieldset .lists .project_list #pagination_link .more', function(){
//do something
});
ただし、クリックイベントを「.more」クラスに正常にバインドしているものはないようです。
私が欠けているものについて誰かが何か考えを持っているなら、助けは大歓迎です! みんな、ありがとう、