0

リストへの動的クラスの割り当てに問題があるため、書いています。これは、サブアイテムをうまく実行できない可能性があるためです。私のコードは次のとおりです。

<nav id="menu">
     <div class="container">
        <div class="fourteen columns" style="width: 765px">

        <ul>
            <li class="current">
                <a href="#storia" >ABOUT US</a>
                                    <ul>
                                        <li><a href="#storia">STORIA</a></li>
                                        <li ><a href="#team" >TEAM</a></li>
                                    </ul>
            </li>
            <li>
                <a href="#fianco">SERVICES</a>
                        <ul>
                            <li><a href="#fianco" >COMPETENZA</a></li>
                            <li><a href="#referenze">REFERENZE</a></li>

                        </ul>
            </li>
    </ul>

そしてJavascript:

//build dropdown
$("<select />").appendTo("#menu");

// Create default option "Go to..."
$("<option />", {
    "selected": "selected",
    "value"   : "",
    "text"    : "Go to..."
}).appendTo("nav select");  

// Populate dropdowns with the first menu items
$("#menu li a").each(function() {
    var el = $(this);
    $("<option />", {
        "value"   : el.attr("href"),
        "text"    : el.text()
    }).appendTo("nav select");
});

//make responsive dropdown menu actually work           
$("nav select").change(function() {
    window.location = $(this).find("option:selected").val();
});

助けてくれてありがとう!

4

1 に答える 1

0

問題は、実際に要素をクリックするのではなく、ウィンドウの位置を変更しているだけであることです。そのため、クラスは割り当てられていません。最後の部分を次のように変更します。

$("nav select").change(function () {
    var link = $(this).val();
    if( link != "") //don't do anything for "Go To"
        $('#menu li a[href=' + link + ']')[0].click(); //simulate click
});

編集: 完全な jsfiddle をチェックしてください: http://jsfiddle.net/6gfpv/1/

于 2013-04-23T13:37:34.573 に答える