2011-01-14 38 views
8

Tôi tự động tải trong một vài li có một nhãn và một hộp kiểm trong chúng đến một ul hiển thị. Tôi đặt các hộp kiểm để được kiểm tra = "kiểm tra" và tôi đang cố gắng kích hoạt một sự kiện xảy ra khi tôi thay đổi các hộp kiểm được chèn động này nhưng không có gì xảy ra.jquery động được thêm vào hộp kiểm không hoạt động với chức năng change()

Đây là jquery:

$(".otherProductCheckbox:checkbox").change(function(){ 
    alert('test'); 
}); 

Đây là html cho động thêm li của:

<li class="otherProduct"><input type="checkbox" class="otherProductCheckbox radioCheck" checked="checked"/><label>Product Name</label></li> 

Bất cứ ý tưởng tại sao tôi không thể nhận được cảnh báo xảy ra khi hộp kiểm thay đổi trạng thái kiểm tra của nó ?

Trả lời

19

Bạn phải sử dụng liveQuery hoặc live để liên kết sự kiện với các yếu tố được thêm động.

$(".otherProductCheckbox:checkbox").live('change', function(){ 
    alert('test'); 
}); 

EDIT Để làm việc trong IE, bạn phải sử dụng bấm vào không thay đổi

$(".otherProductCheckbox:checkbox").live('click', function(){ 
     alert('test'); 
}); 
+0

@Teja Kantamneni: Hoàn hảo. Cảm ơn sự chỉ đạo. Vẫn còn học hỏi những điều khó hiểu. – estern

+0

@estern vui vì tôi có thể giúp bạn. –

+0

Bạn chỉ được yêu cầu làm điều đó nếu các phần tử đang được thêm ** sau ** xử lý sự kiện đã được thiết lập. – Gareth

16

Kể từ live() is now deprecated như jQuery 1.7, tôi nghĩ rằng tôi muốn gửi giải pháp mà làm việc cho tôi trên cùng một vấn đề (sự kiện kích hoạt khi hộp kiểm được thêm động được thay đổi).

$(document).on('click', '.otherProductCheckbox', function() { 
    alert('test'); 
}); 
+0

document.getElementById ('id'). (Thông báo 'click', function() { ('test'); }); Nó không làm việc cho tôi .. những gì "otherProductCheckbox" có nghĩa là ở đây? –

Các vấn đề liên quan