Клик по блоку. Исключить элементы.
Всем привет ))
есть код 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, время: 05:48. |