Попытка настроить таргетинг на конкретный DIV с помощью jQuery - PullRequest
2 голосов
/ 21 апреля 2011

Простая проблема с невероятно сложным решением.

У меня есть оболочка DIV с z-индексом, который ниже, чем DIV, находящийся внутри оболочки. (в основном фон с DIV поверх него)

Когда я запускаю console.log () на оболочке и DIV, я замечаю, что когда я нажимаю на оболочку, она регистрирует только щелчок для оболочки.

Но когда я нажимаю на DIV внутри оболочки, он одновременно регистрирует клики как для оболочки, так и для DIV.

Как, черт возьми, я настроил это так, чтобы, когда я нажимал на DIV внутри оболочки, он регистрировал только щелчок для этого DIV, но не для оболочки тоже ??

Ответы [ 2 ]

2 голосов
/ 21 апреля 2011

Расширяя ответ Джеффа, вот несколько простых примеров кода:

<style type="text/css">
    div {width:100px;height:100px;}
    #parent {padding:50px;background-color:black}
    #child {background-color:yellow}
</style>

<script type="text/javascript">
    $(function () {
        $('div').click(function (event) {
            if ($(this).parents('div')) {
                event.stopPropagation();
            }
            console.log($(this).attr('id'));
        });
    });
</script>

<div id="parent">
    <div id="child"></div>
</div>
2 голосов
/ 21 апреля 2011

Вы захотите использовать stopPropagation. См. Это для получения дополнительной информации:

event.preventDefault () против возврата false

...