Tôi đang cố gắng làm cho trình đơn thả xuống của tôi hiển thị khi bạn nhấp vào nút và ẩn khi bạn nhấp vào bất kỳ đâu ngoại trừ trình đơn thả xuống.jQuery ẩn danh sách thả xuống khi được nhấp vào bất kỳ đâu nhưng menu
Tôi có một số mã hoạt động, miễn là bạn không đóng khi bạn nhấp vào menu, tuy nhiên khi bạn nhấp vào tài liệu khi menu được đóng, trình đơn sẽ hiển thị menu, vì vậy nó liên tục chuyển đổi bất kể bạn nhấp vào đâu.
$(document).click(function(event) {
if ($(event.target).parents().index($('.notification-container')) == -1) {
if ($('.notification-container').is(":visible")) {
$('.notification-container').animate({
"margin-top": "-15px"
}, 75, function() {
$(this).fadeOut(75)
});
} else {
//This should only show when you click: ".notification-button" not document
$('.notification-container').show().animate({
"margin-top": "0px"
}, 75);
}
}
});
Để mô tả mã của bạn; Nó liên kết sự kiện click với toàn bộ 'document' và khi sự kiện đó được kích hoạt, nó sẽ kiểm tra nếu phần tử target (click) có bất kỳ cha mẹ nào có class" .notification-container "và nếu nó kiểm tra nếu bất kỳ phần tử nào với lớp đó có thể nhìn thấy. Nếu vậy, nó ẩn (animates) tất cả các phần tử với lớp ".notification-container" và nếu không nó sẽ hiển thị (animates) chúng thay thế. – Stefan
Giải pháp tốt nhất hiện có là [stackoverflow.com/questions/152975/how-to-detect-a-click-outside-an-element][1]. [1]: http://stackoverflow.com/questions/152975/how-to-detect-a-click-outside-an-element – lightofsouls
hey người đàn ông, bạn sẽ nhớ chấp nhận một câu trả lời? :) – epoch