Ứng dụng của tôi đã tự động thêm Dropdowns. Người dùng có thể thêm bao nhiêu tùy ý.
Theo truyền thống, tôi đã sử dụng live()
phương thức của jQuery để phát hiện khi một trong những Dropdown này được chỉnh sửa change()
:
$('select[name^="income_type_"]').live('change', function() {
alert($(this).val());
});
Kể từ jQuery 1.7, tôi đã cập nhật điều này thành:
$('select[name^="income_type_"]').on('change', function() {
alert($(this).val());
});
Nhìn vào Tài liệu, điều đó sẽ hoàn toàn hợp lệ (phải không?) - nhưng trình xử lý sự kiện không bao giờ kích hoạt. Tất nhiên, tôi đã xác nhận jQuery 1.7 đã được tải và đang chạy, v.v. Không có lỗi trong nhật ký lỗi.
Tôi đang làm gì sai? Cảm ơn!
live
thực sự đang sử dụngon
, vì vậy việc viết lại mã kế thừa có thể không cần thiết cho đến khilive
nó sẽ bị xóa, mà tôi tin là 1.9. Trích từ nguồn 1.7.1:live: function( types, data, fn ) {jQuery( this.context ).on( types, this.selector, data, fn ); return this;}
Vì vậy, nếu một phiên bản không nâng cấp lên phiên bảnlive
không có bản cập nhật có thể không cần thiết ngay lập tức cho mã kế thừa. Đối với mã mới, khóa học sử dụngon()
thay thế là như khuyến nghị. Tôi chỉ nghĩ rằng thông tin này có thể giúp đỡ người khác ở một số giai đoạn.