AJAX调用后jQuery功能无法正常工作

时间:2014-04-17 01:34:31

标签: jquery html ajax

我似乎遇到了jQuery点击功能的问题,我有以下代码:

j$(document).ready(function(e) {

setInterval(function(){

    j$.ajax({
      url: "/include/new_customer.php",
      cache: false
    })
      .done(function( html ) {
        j$( "section .col-xs-12" ).append( html );
      });


  },80000);

    j$('a.dropDown').click(function(e){
        e.preventDefault();
        j$(this).closest('.row').next().toggleClass('hidden');
    });
});

使用以下HTML(抓住必要的内容):

<div class="col-xs-12>
    <div class="row">
        <a href="#" class="dropDown">Manage</a>
    </div>
    <div class="row hidden">
        <!-- stuff -->
    </div>    
</div>

您可以看到是否单击了a标签,隐藏类的行将切换。我有另外两行的AJAX,所以它会是这样的:

<div class="col-xs-12>
        <div class="row">
            <a href="#" class="dropDown">Manage</a>
        </div>
        <div class="row hidden">
            <!-- stuff -->
        </div>  
        <div class="row">
            <a href="#" class="dropDown">Manage</a>
        </div>
        <div class="row hidden">
            <!-- stuff -->
        </div>    
    </div>

我的问题是,对于新数据,当我点击标签时,切换功能不起作用。我已经完成了一些测试,例如从inspect元素中删除隐藏的类,并且有数据要显示。我不知道发生了什么事。请帮忙!

1 个答案:

答案 0 :(得分:13)

您需要使用 event delegation 为动态加载的元素附加事件:

j$(document).on('click','a.dropDown',function(e){
    e.preventDefault();
    j$(this).closest('.row').next().toggleClass('hidden');
});