2014-12-19 7 views
0

Мне нужно знать, как вызвать функцию, если какой-либо один клик в пустое место на странице jsp.вызов функции jquery при нажатии пробела

Я пробовал следующий код, но он не работает, как я хочу.

Может ли кто-нибудь сказать мне, как это сделать?

jQuery("*:not(select)").click(function(){ 

    alert("clck"); 
    //some code here 

    }); 

Здесь я попытался всякий раз, когда я выхожу из окна выбора, которое вызовет функция.

Если я нажму на поле выбора, он не будет вызываться, но эта функция вызывается все время.

Почему это происходит?

+0

Потому что распространения событий, так что прекратите событие барботажа –

+0

@ A.Wolff, тогда как я могу это достичь? – KVK

ответ

4

Я бы, наверное, сделать это что-то вроде этого:

$(document).on("click", function(e) { 
    if (e.target === document || e.target.tagName === "BODY" || e.target.tagName === "HTML") { 
     // Clicked on blank space 
    } 
}); 

Это перехватывает click событие на document, а затем проверяет, чтобы увидеть, если клик возник на документе (или body или html элементов). Если это так, пользователь нажал «пустое пространство» (например, не на какой-либо другой элемент в документе).

+0

Нет ответа Vaibhav достаточно проверить? –

+0

@ A.Wolff: 'body' не всегда заполняет область просмотра. –

+0

Это хороший момент! –

3

Не уверен, что он будет работать во всех браузерах, но в хроме.

$('body').click(function (e) { 
    if (e.target == this) 
     alert('clck'); 
}); 
+0

Это будет работать на всех браузерах –

+0

Я пробовал это раньше. но он не будет работать в Mozilla – KVK

+0

@KVK Вы уверены? Попробуйте снова. Mozilla не передает объект 'event' по умолчанию, но здесь этот ответ является излишней передачей переменной' e', ссылающейся на событие –

0

Если вы хотите специальный пункт, который будет не включен в щелчку попробовать это

$('#itemtobeexcluded').on('click', function(e) { 
    e.stopPropagation(); 
}); 

Тогда для всего документа:

$(document).on('click', function (e) { 
// function body 
}); 
0

может быть это будет работать

$(document).on('click', function (e) { 

     alert('clck'); 
}); 
Смежные вопросы