У меня есть некоторые элементы, которые я могу выбрать с помощью функции .click (), и они стали выделенными. Над ними есть меню с некоторыми действиями. Я хочу отменить выделение, когда я щелкаю любой элемент, но не меню.
Структура:
/* selectable elements here */
Пример исполняемого файла
$ (). Ready (function () {$ ("# elements a"). Click (function ( ) {$ (this) .css ('color', 'red'); return false;}); $ (document) .click (function (e) {if ($ (e.target) .closest ('# menu ') .length === 0) {$ ("# elements a"). css (' color ',' blue ');}});});
Щелкните любой элемент, чтобы выделить его. Щелкните в любом месте, чтобы сбросить выделение. Щелкните меню, чтобы продолжить выделение.
Я пытался привязать $ ("body *"). not ("# menu"). click (...);
, но когда я нажимаю # menu, то событие body onclick тоже сработало, потому что #menu является потомком body.