gì nhiều người dường như không nhận ra trong jQuery là khi có nhiều bộ chọn phù hợp, bất kể chức năng là sau khi danh sách chọn sẽ được gọi riêng từng cái một trên mỗi bộ chọn riêng lẻ.
Vì vậy $("#identifier div:first, #identifier2")
sẽ riêng biệt phù hợp với cả hai:
$("#identifier div:first")
and
$("#identifier2")
Và, sẽ gọi các quy định fadeOut
chức năng và nó xử lý riêng cho từng trận đấu. Điều đó có nghĩa là mỗi trình xử lý sẽ có giá trị this
riêng được đặt cho phù hợp với công cụ chọn phù hợp.
Bên trong bên trong jQuery, có một vòng lặp như mã giả này lặp qua tất cả các trận đấu selector trở lại và gọi hàm tiếp theo trong chuỗi cho mỗi người:
for (var i = 0; i < matches.length; i++) {
jQuery["fadeOut"].call(matches[i], duration, easing, fn);
}
Nếu bạn muốn mã riêng biệt được sử dụng cho hai trận đấu khác nhau, sau đó nó có thể là tốt hơn để chỉ cần sử dụng hai câu lệnh jQuery riêng biệt:
$("#identifier div:first").fadeOut(300,function() {
// do stuff for #identifier div:first
});
$("#identifier2").fadeOut(300,function() {
// do stuff for #identifier2
});
Nếu bạn có rất nhiều mã trong khối và nó chủ yếu là giống nhau, sau đó bạn cũng có thể chi nhánh trong vòng một khối mã chung:
$("#identifier div:first, #identifier2").fadeOut(300,function() {
if (this.id != "identifier2") {
// execute code that only applies to the #identifier match
}
// execute rest of common code
});
** this ** đề cập đến phần tử hiện tại. Vì bộ chọn của bạn kết thúc tìm kiếm nhiều mục, nó sẽ áp dụng hàm ** fadeOut ** cho mỗi mục. Bạn đang cố gắng để làm chính xác? – alkos333
làm mờ dần hai yếu tố, làm việc với chúng một cách riêng biệt sau đó làm mờ chúng trở lại. Tôi có thể đạt được điều này theo một cách khác, mà tôi biết. Tôi tuy nhiên tò mò như thế nào tôi sẽ làm điều đó trong trang viên này. – rlemon