Выберите родителей объекта DOM и исключите дочерних элементов выбранных родителей. - PullRequest
0 голосов
/ 19 октября 2010

Я хотел бы отобразить диалоговое окно, когда пользователь щелкает объект DOM, в котором находится мое приложение.

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

Поскольку объект DOM, для которого я получаю родительский объект, включен, он запускает диалог, даже когда щелкает сам объект.

Я хочу,по сути, пробейте дыру в родителях, чтобы исключить DOM, с которым взаимодействует пользователь.

Я думал, что отпуск мышью, а затем щелкните любой другой объект dom, сработает.

Есть предложения?

1 Ответ

1 голос
/ 19 октября 2010
$("#container").click(funcion(e) {
    if (this !== e.target) { return; }
    // the user clicked the parent directly (not one of its children)
});

Объяснение: Вы проверяете, равна ли цель события элементу #container. Если нет, это означает, что событие click всплыло у одного из дочерних элементов контейнера #, и вы просто убили событие, вернувшись. Если да, вы делаете то, что вы хотели.

Вы можете посмотреть, как это работает, на моем веб-сайте (w3viewer.com). Нажмите на ссылку «О программе» в левом нижнем углу. Коробка появится. Чтобы закрыть окно, нужно щелкнуть за его пределами.

...