2016-06-01 2 views
0

В настоящее время я разрабатываю веб-приложение, использующее HTML и JavaScript. У меня проблема с моими списками, и теперь мне нужно проверить, нажата ли нажатая кнопка на моей странице.Проверьте, сделан ли клик на всей HTML-странице, содержащей Javascript

Дело в том, что, когда я использую JavaScript, чтобы проверить, сделан ли клик, он неправильно проверяет мою область JavaScript.

$("html").click(function() 
    { 
     alert("Click"); 
    }); 

У меня есть область, которая может быть втянута с кнопки - (минус), что я сделал, это означает, что это динамический. Когда эта область видна, каждый раз, когда я нажимаю на нее, она не считается кликом на моей HTML-странице (поскольку .click, похоже, не нравится динамический материал).

У вас есть идея, как я могу проверить, сделан ли клик, везде на моей странице, за исключением одного места.

Так что действительно, что мне нужно, это способ захватить каждый клик, который я делаю, за исключением одного конкретного DIV в моей программе.

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

+1

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

+0

Да, я хочу, чтобы мой клик учитывался везде на моих страницах, в том числе в моем динамическом элементе таблицы, везде, кроме одного места. Сделать вас в контексте. Я нажимаю в одном месте, что делает определенный приращение счетчика, и я хочу, чтобы мой счетчик был сброшен каждый раз, когда я выхожу за пределы этого div! –

+0

Вы знакомы с концепцией слушателей событий на Javascript? – iomv

ответ

1

Ваша функция должна работать для кликов по всей странице.

Что вам нужно, это аналогичный обработчик, который прослушивает ваш регион. Этот обработчик кликов должен return false, чтобы предотвратить работу первого. Для того, чтобы связать этот щелчок обработчик даже к новым, динамически создаваемых элементов DOM, используйте on() с селектором CSS и создать новые элементы с классом (например, special)

$(document) 
    .on("click", ".special", function() { 
    alert("Click on special div"); 
    return false; 
    }) 
    .on("click", function() { 
    alert("Click elsewhere"); 
    }); 

Смотрите мою скрипку: https://jsfiddle.net/efckqng0/1

+0

Что делать, если на странице много 'divs'? – Shrabanee

+0

Это не сработает. Код, который я написал, в настоящее время не работает для меня, так как мои страницы содержат динамический элемент. Я нашел метод .live, но все равно не повезло. он не ловит мой клик! –

+0

@ titi23 Тогда вы должны использовать класс css. Я сделаю это более очевидным в своем ответе. –

1

Отдай класс, и проверить его соответствующим образом, захватив только клики, которые не соответствуют этот класс:

$('html').click(function(e) { 
    if(!$(e.target).hasClass("thisClass")) 
{ 
    alert("you clicked outside the red!"); 
} 
});  

Вот скрипка: http://jsfiddle.net/0nvgdm1j/1/

+0

Ваш ответ не будет работать. Код $ ("html").клик не распознает мой клик по динамическим элементам. Дело в том, что мне нужно, чтобы все мои элементы работали! –

+0

Извините, я просто прочитал ваш последний абзац («то, что мне нужно, это способ захватить каждый клик, который я делаю, за исключением одного конкретного DIV в моей программе») ... –

Смежные вопросы