триггерное событие jQuery, когда щелчок вне элемента

$(document).click(function(evt) {
    var target = evt.currentTarget;
    var inside = $(".menuWraper");
    if (target != inside) {
        alert("bleep");
    }

});

Я пытаюсь выяснить, как сделать его так, чтобы, если пользователь нажимает за пределами определенного отделения (menuWraper), оно инициировало событие.. Я понял, что могу просто заставить каждый щелчок запустить событие, затем проверить, является ли нажатый currentTarget тем же как объект, выбранный из $ (" .menuWraper"). Однако это не работает, currentTarget является объектом HTML(?) и $ (" .menuWraper"), Объект является объектом? Я очень смущен.

31
задан tpae 23 July 2010 в 01:46
поделиться

4 ответа

Просто вызовите элемент menuWraper event.stopPropagation () , чтобы его событие щелчка не всплывало в документ .

Попробуйте: http://jsfiddle.net/Py7Mu/

$(document).click(function() {
    alert('clicked outside');
});

$(".menuWraper").click(function(event) {
    alert('clicked inside');
    event.stopPropagation();
});

В качестве альтернативы вы можете вернуть false; вместо использования event.stopPropagation ();

68
ответ дан 27 November 2019 в 21:28
поделиться

попробуйте эти ..

$(document).click(function(evt) {
    var target = evt.target.className;
    var inside = $(".menuWraper");
    //alert($(target).html());
    if ($.trim(target) != '') {
        if ($("." + target) != inside) {
            alert("bleep");
        }
    }
});
4
ответ дан 27 November 2019 в 21:28
поделиться

Наиболее распространенное приложение здесь закрывается при щелчке по документу, но не тогда, когда он исходил из этого элемента, для этого вы хотите остановить всплытие, например:

$(".menuWrapper").click(function(e) {
  e.stopPropagation(); //stops click event from reaching document
});
$(document).click(function() {
  $(".menuWrapper").hide(); //click came from somewhere else
});

Здесь все делали предотвращает щелчок из всплытия (через event.stopPrpagation () ), когда он исходил из элемента .menuWrapper . Если это не , то щелчок пришел откуда-то еще и по умолчанию переместится в документ , если он попадает туда, мы скрываем те .menuWrapper элементов.

12
ответ дан 27 November 2019 в 21:28
поделиться

Я не думаю, что документ вызывает событие щелчка. Попробуйте использовать элемент body для захвата события щелчка. Возможно, нужно проверить это ...

1
ответ дан 27 November 2019 в 21:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: