JQuery .on()嵌套Click事件

时间:2016-08-16 09:27:15

标签: jquery ruby-on-rails click event-binding

我有一个非常复杂的表单,它触发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>

从我的例子中,我想绑定&#39;点击&#39;类的事件&#34;更多&#34;,它嵌套在div和fieldset的排列中。看作&#34; location_grid&#34;呈现html,这将是.on()事件的锚点,因为它在部分刷新后不会被销毁 - 所以我最初的尝试是:

$('#locations_grid').on('click','.more', function(){
  //do something
});

然而,(据我的理解)我怀疑这不会起作用(并且它没有)因为&#34;。更多&#34;不是&#34;#locations_grid&#34;的直接孩子。所以到目前为止我的尝试是各种组合:

$('#locations_grid').on('click','fieldset .lists .project_list #pagination_link .more', function(){
  //do something
});

然而,似乎没有一个成功地将click事件绑定到&#34; .more&#34;类。

如果有人知道我错过了什么,那么这个帮助会很受欢迎! 谢谢大家,

1 个答案:

答案 0 :(得分:0)

您可以使用如下代码

   $('body').on('click','fieldset .lists .project_list #pagination_link .more', function(){
      //do something
    });

 or

  $('body').on('click','.more', function(){
      //do something
    });

我认为这将是有效的