Клик по блоку. Исключить элементы.
Всем привет ))
есть код this.element.closest('form').on('click', function () { alert(1); }); Содержимое всей страница в теге ФОРМ. Тоесть при клике по любому элементу страницы выводится алерт. А как исключить input[type=submit] ? Код : this.element.closest('form').find(':not(input[type=submit])').on('click', function () { alert(1); }); Не работает... |
Вечная морока с этим тоже. Я делаю так: вешаю событие на клик по всему document и событие на клик по элементу который надо отделить. Потом в обработчик клика по элементу добавляю изменение переменной, например submit_click = true, что позволяет мне выделить клик по элементу. А в обработчик клика по document пишу само действо при клике вне элемента(т.е. клику в любой части страницы кроме выделенного нами) с проверкой этой самой переменной if(submit_click){*значит клик по кнопке был и ничего делать не нао*} else {*делаем то, что необходимо при клике вне элемента*}, и в конце прибавляю изменение переменной submit_click = false...
|
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<form onsubmit="return false">
<input type="text"/>
<input type="submit"/>
</form>
<script type="text/javascript">
$("form *").not("[type='submit']").on('click', function () {
alert(1);
});
</script>
|
Цитата:
|
<form>
<input type="text" />
<input type="text" />
<input type="submit" />
</form>
<script>
alert( document.querySelectorAll('form :not([type="submit"])').length );
</script>
|
| Часовой пояс GMT +3, время: 07:40. |