stopPropagation (); не работает, чтобы остановить вершину этого дочернего div - PullRequest
0 голосов
/ 05 июля 2011

проблема между родителем и ребенком DIV.когда вы нажмете на дочерний div появится так же, как родительский div.Я хочу, чтобы ребенок не следовал за действиями родителей.я пробовал stopPropagation () не работает или, может быть, я запутался.

html код:

<div class="innerbox">
<div id="button"></div>
</div>

jQuery код:

<script type="text/javascript">
//<![CDATA[
function ShowHide(d){
    $("div#button").click(function(e) {
       e.stopPropagation();
       return;
    });

    //$(".innerbox").click(function(e) {
        jQuery(d).animate({"height": "toggle"}, {
            duration: 500,
            complete: function() {
                //add action after complete action...
            }
        });
    //});
}
//]]>
</script>

1 Ответ

1 голос
/ 05 июля 2011

Если вы говорите, что при нажатии «.innerbox» div вы хотите анимировать его, но не хотите, чтобы элемент «#button» был анимированным, вам придется переместить«#button» div из «.innerbox» div, поскольку на дочерний элемент будет влиять анимация его родителя.

stopPropagation - это остановка всплывающего события.элементам-предкам, а не последствиям того, что вы делаете.Конечно, в этом случае событие click останавливается и не отправляется в ".innerbox" div.


Это может быть не по теме, но когда / как вы звоните ShowHide?Потому что вы подключаете обработчик событий внутри функции;новый обработчик будет присоединен каждый раз, когда вы звоните ShowHide.Я не думаю, что это то, что вы хотите ...

...