vấn đề của tôi là sau: Tôi nhận được trình kích hoạt (a) và cửa sổ bật lên (div). Div không nằm trong lồng.kiểm tra ('div') mouseenter trên ('a') mouseleave
- Khi tôi di chuột qua, tôi muốn div hiển thị.
- Khi tôi đi từ một đến div, tôi muốn nó luôn hiển thị.
- Khi tôi rời khỏi div, tôi muốn nó đóng lại.
- Khi tôi di chuột qua và thoát mà không nhập div, tôi muốn div đóng lại.
Tôi nhận được hầu hết điều đó đã được tìm ra, nhưng giờ tôi đang đấu tranh với yêu cầu không. 2. Khi kiểm tra mouseleave trên a, tôi kiểm tra nếu có một mouseenter trên div. Nếu có, tôi muốn hủy bỏ mouseleave. Nếu không, tôi muốn đóng div.
Tôi đang làm gì sai? Đây có phải là cách thích hợp để làm điều này không?
Dưới đây là đánh dấu:
<a href="#" class="popup_toggle" style='display:block;width:50px;height:50px;border:1px solid red;position:relative;'>Toggle</a>
<div class="popup_div" style='position:absolute;top:50px;left:0px;border:1px solid blue;display:none;'>Popup</div>
Đây là jQuery:
$('.popup_toggle').mouseenter(function() {
var element = $(this).next('.popup_div');
$.data(this, 'timer', setTimeout(function() {
element.show(100);
}, 500));
});
$('.popup_toggle').mouseleave(function() {
clearTimeout($.data(this, 'timer'));
if($('.popup_div').mouseenter==true)
{
return false;
}
else
{
$('.popup_div').hide(100)
};
});
Cảm ơn bạn đã trả lời và tạo ví dụ! Nhưng ngay cả sau khi xem xét nó, tôi không có đầu mối những gì bạn đang làm ở đó. Tôi đã phải thừa nhận rằng tôi không có kinh nghiệm trước đó trong jQuery hoặc lập trình nói chung, và tôi cần để có thể duy trì mã của riêng tôi nên có phát sinh vấn đề khi làm việc với nó. Tôi không thể nói tại sao câu trả lời đầu tiên là viết mã sai, nhưng tôi sẽ tiếp cận với phương pháp này vì tôi thực sự có thể hiểu nó :) – chabuya