Tôi là trying to make một đầu vào HTML hỗn hợp tương thích với jQuery.Tại sao sự kiện jQuery `change` tùy chỉnh của tôi được kích hoạt hai lần?
Trong this example khi select
thay đổi, alert
được gọi hai lần. Tại sao?
Cho một nút chứa đơn giản:
<span id="x"></span>
Đây là một bản demo hoàn toàn làm việc:
function el (type) {
return document .createElement (type);
}
function opt (sel, value) {
let node = el ('option');
node .value = value;
node .appendChild (document .createTextNode (value));
sel .appendChild (node);
}
let x = document .getElementById ('x');
let a = el ('select');
let b = el ('select');
x .appendChild (a);
x .appendChild (b);
opt (a, 'a_1');
opt (a, 'a_2');
opt (b, 'b_1');
opt (b, 'b_2');
$(a) .change (function() {$(x) .trigger ('change');});
$(b) .change (function() {$(x) .trigger ('change');});
$(x) .change (function() {alert ('changed');});
Bởi vì cả hai a và b = chọn? Bạn có cố gắng để cho b = el ('chọn # b') và để cho a = el ('chọn # a') không? –
'el' tạo thành phần tử mới. – spraff