2013-03-13 84 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