Nếu tôi gán một trình xử lý cho sự kiện OnClick của một phần tử hai lần, thì trình xử lý sẽ được thực thi hai lần. Nhưng tôi muốn thay đổi điều này vì vậy ngay cả khi tôi gán nó hai lần, thì trình xử lý sẽ chỉ thực hiện một lần.Chỉ thêm một trình xử lý OnClick với jQuery một lần - ngay cả khi được gọi lại
dụ vô nghĩa để chứng minh vấn đề:
$('.button').click(
function(){
alert('here');
});
$('.button').click(
function(){
alert('here');
});
Vì vậy, tôi đã thêm xử lý hai lần. Bây giờ khi tôi nhấp vào một phần tử với lớp đó, tôi sẽ nhận được hai hộp cảnh báo.
Câu hỏi đặt ra là, làm cách nào để hạn chế nó để tôi chỉ nhận được một hộp cảnh báo?
Tại sao bạn cần phải thêm sự kiện hai lần? – root
Có một chức năng được thực hiện trên trang này mỗi khi có một postback, để thêm trình xử lý vào các phần tử được tạo động. Tuy nhiên, bất kỳ phần tử nào đã tồn tại trước đây đều có trình xử lý hai lần ... – msigman
Tôi nghĩ bạn cần suy nghĩ lại cách tiếp cận để tránh bị ràng buộc hai lần, nhưng nếu bạn đang ở trong một cuộc khủng hoảng, tôi cho rằng bạn có thể sử dụng '$ ('. Button') .off ('click'). on ('click', function() {...}); 'như ở đây: http://jsfiddle.net/SsRxv/ – hyperslug