Tôi đang cố gắng ẩn div nếu người dùng nhấp vào bất cứ nơi nào NHƯNG cửa sổ bật lên HOẶC đó là trẻ em. Đây là mã tôi có cho đến thời điểm này:jQuery: Ẩn cửa sổ bật lên nếu nhấp chuột được phát hiện ở nơi khác
$("body").click(function(){
var $target = $(event.target);
if(!$target.is(".popup") || !$target.is(".popup").children()){
$("body").find(".popup").fadeOut().removeClass('active');
}
});
Nó hoạt động cho div .popup, nhưng nếu có con nào được nhấp, nó sẽ ẩn nó.
Một đề xuất nhỏ là viết $ (". Popup: visible"). FadeOut(). RemoveClass ("active"); - Tôi đã có vấn đề nơi thứ xuất hiện lại chỉ để phai mờ một lần nữa. – ehdv
Điều này có vẻ như một giải pháp tuyệt vời, tuy nhiên, tôi đang gặp sự cố khi có những thứ cần phải xảy ra trong cửa sổ bật lên dựa trên sự kiện nhấp chuột. Cụ thể, tôi có ứng dụng Rails và đang sử dụng: remote => true trên biểu mẫu trong cửa sổ bật lên. Trong trường hợp này, chức năng AJAX bị ngắt khi sử dụng e.stopPropagation(). Tôi đã tạo http://stackoverflow.com/questions/5904602/jquerys-event-stoppropagation-causing-problems-with-rails-remote-true trước khi tìm câu hỏi này. Bất kỳ cách nào xung quanh điều này? – robertwbradford
... Tôi muốn nói "using a: method =>: delete,: remote => true trên liên kết 'hủy' liên kết trong cửa sổ bật lên ..." – robertwbradford