您的位置:首页 > Web前端 > JQuery

一个jQuery事件绑定的问题

2016-04-09 09:20 791 查看
/*搜索按钮*/

      $("#searchChannel").click(function(){

       //1.获取搜索条件

       var searchBy = $("#channel_typeid_temp").val();

       console.info(searchBy);

       //2.发起请求

       $.getJSON("../reward/getWebsiteBy",{ searchBy:searchBy},function(result){

       
//3.清空原来的列表数据
       $(".table-main tbody").empty();

       
if(result.length==0){

       
$(".table-main tbody").append($("<tr><td colspan='3'>没有找到任何结果,请改变搜索条件</td></tr>"));

       
}else{
       //4.添加json中的数据
       $.each(result, function(i, field){
      console.info(i+"----"+field.WebsiteId+"----"+field.class_name);
      //生成checkbox
      var tdCheckbox = "<td><input type='checkbox' name='ids' value='"+field.WebsiteId+"_"+field.id+"'"+"/></td>";
      //生成一个tr表格行
      $("<tr></tr>").append($(tdCheckbox))
       .append("<td>"+field.WebsiteId+"</td>")
       .append("<td>"+field.class_name+"</td>")
       .appendTo($(".table-main tbody"));//添加到tbody里面

    });
    //这里非常重要,需要重新绑定这个事件,否则点击无效
    $("[name='ids']:checkbox").click(function(){
       check(); 
      });

       
}

       });
      });

jQuery新添加元素之后重新添加事件问题。往表中新添加的checkbox元素需要重新绑定其点击事件,否则点击无效。这是因为一个执行顺序问题,你先对原来那些checkbox绑定了事件,现在你将其删除了,这是事件相当于就没有了事件源。你动态增加的checkbox即使其name与前面一样,其因为没有执行绑定事件的语句,也就是说他没有事件,当然点击无效。总结起来就是:动态增加的元素需要增加之后绑定相应的事件,以前的不起作用,即使条件一样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: