2013-03-13 54 views
0

我正在使用jquery来检查和取消选中项目,以便将操作关联到它们。非常常见的任务...下面的功能对此很有帮助。使用AJAX load()来刷新列表后出现的问题,在这种情况下的onclick事件不要再respnd:jquery 1.8.3和onclick事件

1)jQuery函数

$('#checkItemsAll').change(function() { 
     var cb = $("#filesSection").find(':checkbox'); 
     if(this.checked) { 
      cb.attr('checked', true); 
      cb.each(function(o){ 
       var chkID = $(this).val(); 
       $("#"+chkID).addClass('alert alert-info'); 
       }); 
     }else{ 
      cb.attr('checked', false); 
      cb.each(function(o){ 
       var chkID = $(this).val(); 
       $("#"+chkID).removeClass('alert alert-info'); 
       }); 
     } 
    }); 

    $('input:checkbox').click(function(){ 
     if(this.checked) { 
      $('#'+this.value).addClass('alert alert-info'); 
     } 
     else { 
      $('#'+this.value).removeClass('alert alert-info'); 
     } 
    }); 

2)负载函数调用,具有刷新列表中,但复选框单击事件不会在新名单上的回应(在静止的JS附加到新名单的方式)

$("#filesSection").load(node.data.url+'?folderId='+node.data.key); 

你遇到过吗?我正在调查的解决方案是在复选框输入上添加onclick事件,但我想有一种方法可以管理onclick。

干杯

LL

+3

http://learn.jquery.com/events/event-delegation – 2013-03-13 21:13:08

回答

2

像凯文乙说。例如:

$(document).on('click', 'input:checkbox', function(){ 
... 
}); 
+0

谢谢,事件委托传播和岩石! – 2013-03-13 21:31:04

+1

不客气。不要忘记接受或upvote帮助你的答案。 – isherwood 2013-03-13 21:31:45