JQuery: щелкните везде, кроме некоторого элемента

У меня есть некоторые элементы, которые я могу выбрать с помощью функции .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 ');}});}); 
   
Щелкните любой элемент, чтобы выделить его. Щелкните в любом месте, чтобы сбросить выделение. Щелкните меню, чтобы продолжить выделение.

Jsfiddle

Я пытался привязать $ ("body *"). not ("# menu"). click (...); , но когда я нажимаю # menu, то событие body onclick тоже сработало, потому что #menu является потомком body.

14
задан Black 29 May 2017 в 11:49
поделиться