0

div をドロップダウンする次のスクリプトがあります。正しいのは、divの外側をクリックするか、別のdivを選択して下に移動すると、すでに滴り落ちているdivが上がるということです。

しかし、div内の何かをクリックすると、上がらないのでしょうか?

Javascript:

$(document).ready(function() {
    $('#favorite_holder').click(function(e) {
        $('#favorite_container').slideToggle("fast");
        $('#account_container').slideUp("fast");
        $('#cart_container').slideUp("fast");
        e.stopPropagation();
    });

    $('#account_holder').click(function(e) {
        $('#account_container').slideToggle("fast");
        $('#favorite_container').slideUp("fast");
        $('#cart_container').slideUp("fast");
        e.stopPropagation();
    }); 

    $('#cart_holder').click(function(e) {
        $('#cart_container').slideToggle("fast");
        $('#favorite_container').slideUp("fast");
        $('#account_container').slideUp("fast");
        e.stopPropagation();
    });

    $(document).click(function(){
        $('#favorite_container, #account_container, #cart_container').slideUp("fast");
    });
});

HTML:

<div id="favorite_holder">
    <span class="price">click here</span>
</div>
<div id="favorite_container" style="display: none;">
    content here...
</div>
<div id="account_holder">
    <span class="price">click here</span>
</div>
<div id="account_container" style="display: none;">
    content here two ...
</div>
<div id="cart_holder">
    <span class="price">click here</span>
</div>
<div id="cart_container" style="display: none;">
    <form>
        First name: <input type="text" name="firstname"><br>
        Last name: <input type="text" name="lastname">
    </form>
</div>

jsfiddle

4

2 に答える 2

1

HTMLとJavaScriptを使用した簡単な方法:

HTML:

<div id="favorite_holder" class="parent">
    <span class="price">click here</span>

<div id="favorite_container"  class="child" style="display: none;">
    content here...
</div>
</div>

<div id="account_holder" class="parent">
    <span class="price">click here</span>

<div id="account_container" class="child" style="display: none;">
    content here two ...
</div>
</div>


<div id="cart_holder" class="parent">
    <span class="price">click here</span>

<div id="cart_container" class="child" style="display: none;">
    <form>
        First name: <input type="text" name="firstname" /> <br\>
        Last name: <input type="text" name="lastname" />
    </form>
</div>
</div>

JavaScript:

$(document).ready(function() {
    $('.parent').click(function() {
        $('.child').slideUp("fast");            
        $(this).find("div").slideDown("fast");           
    });


    $('.child').click(function(e) {
        e.stopPropagation();
    });   
});
于 2013-10-16T12:07:42.700 に答える