Sự khác biệt giữa jQuery .mouseover()
và các .hover()
hàm là gì? Nếu chúng hoàn toàn giống nhau tại sao jQuery lại sử dụng cả hai?
el
yếu tố để child
và đánh dấu vào giao diện điều khiển
Sự khác biệt giữa jQuery .mouseover()
và các .hover()
hàm là gì? Nếu chúng hoàn toàn giống nhau tại sao jQuery lại sử dụng cả hai?
el
yếu tố để child
và đánh dấu vào giao diện điều khiển
Câu trả lời:
.mouseover()
.hover()
Liên kết một hoặc hai trình xử lý với các phần tử phù hợp, sẽ được thực thi khi con trỏ chuột
vào và rời khỏi các phần tử.
Gọi $(selector).hover(handlerIn, handlerOut)
là viết tắt của:
$(selector).mouseenter(handlerIn).mouseleave(handlerOut);
Ràng buộc một trình xử lý sự kiện sẽ được kích hoạt khi chuột nhập một phần tử hoặc kích hoạt trình xử lý đó trên một phần tử.
mouseover
kích hoạt khi con trỏ cũng di chuyển vào phần tử con, trong khi mouseenter
chỉ kích hoạt khi con trỏ di chuyển vào phần tử bị ràng buộc.
Bởi vì điều này, .mouseover()
là không giống như .hover()
, với cùng lý do .mouseover()
là không giống như .mouseenter()
.
$('selector').mouseover(over_function) // may fire multiple times
// enter and exit functions only called once per element per entry and exit
$('selector').hover(enter_function, exit_function)
.hover()
hàm chấp nhận hai đối số hàm, một cho mouseenter
sự kiện và một cho mouseleave
sự kiện.
Bạn có thể dùng thử http://api.jquery.com/mouseover/ trên trang jQuery doc. Đó là một bản demo nhỏ, tương tác, làm cho nó rất rõ ràng và bạn thực sự có thể tự mình xem.
Tóm lại, bạn sẽ nhận thấy rằng sự kiện di chuột qua xảy ra trên một phần tử khi bạn đang ở trên phần tử đó - đến từ phần tử con HOẶC phần tử cha của nó, nhưng sự kiện nhập chuột chỉ xảy ra khi chuột di chuyển từ phần tử mẹ sang phần tử đó.
Từ tài liệu chính thức: ( http://api.jquery.com/hover/ )
Phương thức .hover () liên kết các trình xử lý cho cả sự kiện mouseenter và mouseleave. Bạn có thể sử dụng nó để đơn giản áp dụng hành vi cho một phần tử trong thời gian chuột ở trong phần tử đó.
Như bạn có thể đọc tại http://api.jquery.com/mouseenter/
Sự kiện JavaScript của mouseenter là độc quyền của Internet Explorer. Do tiện ích chung của sự kiện, jQuery mô phỏng sự kiện này để nó có thể được sử dụng bất kể trình duyệt nào. Sự kiện này được gửi đến một phần tử khi con trỏ chuột vào phần tử. Bất kỳ phần tử HTML nào cũng có thể nhận được sự kiện này.