-1

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

在我的示例中,我想将“单击”事件绑定到“更多”类,该类嵌套在 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”类。

如果有人对我缺少什么有任何想法,那么我们会很乐意提供帮助!谢谢大家,

4

3 回答 3

0

你可以使用下面的代码

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

 or

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

我认为这将是工作

于 2016-08-16T09:35:34.027 回答
0

你可以试试这个,它会在所有有课的“a”上应用点击监听器;

    $('div').has(".more").on('click','.more', function(){
     //do something;
    });
于 2016-08-16T09:37:13.867 回答
0

已解决的问题原来是 Ruby on Rails 资产管道未加载 javascript 文件的问题。

澄清一下,我最初的实现是正确的。

$('#locations_grid').on('click','.more', function(){
  //do something
});
于 2016-08-16T10:12:48.853 回答