Подтвердить что ты не робот

Исключить событие клика по условию?

Я пытаюсь установить условия для события jQuery. У меня есть элемент ввода и div. Я хочу обнаружить клик в любом месте страницы и выполнить этот метод, но только если клик не находится на входе или div.

4b9b3361

Ответ 1

Используйте функции jQuery click() или live(), а затем проверьте цель события click с помощью функции jQuery is().

  • связать событие click в документе
  • если цель не введена или div continue

.

$(document.body).click(function(e) {
  if( !$(e.target).is("input, div") ) {
    console.log("Run function because image or div were not clicked!");
  }
});

Пример webpage = > http://mikegrace.s3.amazonaws.com/forums/stack-overflow/example-document-click-exclusion.html

Пример вывода firebug после нажатия на странице примера

alt text

Ответ 2

Что-то вроде этого должно работать.

$('body').click(function(event){ // body click
    var $target = $(event.target); // click target
    if($target.is('#mydiv, #myinput')) { // click target is div or input
        $target.click(); // click div or input
    }
});

Ответ 3

В основном назначьте обработчик кликов в теле страницы, затем проверьте целевой элемент события, чтобы узнать, соответствует ли идентификатор этого целевого элемента вашему div или вашему входу.

$("body").click(function(evt) {
  var targetElementId = evt.target.id;

  if (!(targetElementId  == "yourDivID" || targetElementId == "yourinputId"))
  {
    // your event code here.
  }
});

Ответ 4

var input = $("#yourInput")[0];
var div = $("#yourDiv")[0];

$(document.body).click(function(e) {
   switch ( e.target ) {
       case input: case div: return;
   }
   yourMethod();
});

Ответ 5

Пример исключения определенных элементов с помощью шаблона:

$("#mydiv li").click(function(e){

        var Target = new String(e.target.id);

        // prevent action when a element with id containing 'img_' is clicked
        if( !Target.match(/img_/ )) {
            // do something
        }

});