Jquery :: Вызов функций дважды во вложенных <div>? - PullRequest
0 голосов
/ 27 октября 2011

У меня есть этот код:

<div id="parent1">
    <div id="child1"></div> <!-- Which is a close button -->
</div>

И мой JQuery

$("#parent1").click(function(){
    // Enlarge the image to 1000px
})

$("#child1").click(function(){
    // Stop the animation
    $("#parent1").stop();
    // restore the width to original one: 320px
})

Проблема теперь в том, что когда я нажимаю кнопку «Закрыть», она вызывает обе функции и не восстанавливает первоначальную ширину. Как мне это исправить?

Ответы [ 3 ]

1 голос
/ 27 октября 2011

Используйте event.stopPropagation или event.stopImmediatePropagation , чтобы предотвратить пузырьковое событие.

Пример -

$("#child1").click(function(event){
    event.stopImmediatePropagation();
    // Stop the animation
    $("#parent1").stop();
    // restore the width to original one: 320px
})

Демо - http://jsfiddle.net/Jq6GB/

1 голос
/ 27 октября 2011

Попробуйте это:

$("#child1").click(function(event){
    event.stopPropagation();
    // Stop the animation
    $("#parent1").stop();

    // restore the width to original one: 320px
})

Событие в настоящее время всплывает в DOM-дереве.

0 голосов
/ 27 октября 2011

Восстановить ширину кнопки закрытия по клику # child1

$("#child1").click(function(event){
    $("#parent1").stop();
    $("#parent1").css("width","320px");
    //or
    //event.stopPropagation();
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...