0

順序付けられていないリスト、リスト項目、jQuery、および CSS を使用してドロップダウン メニューを作成しました。メニュー項目 (アンカー) をクリックしても機能しません。アンカーをクリックすると、メニューが消えるだけです。アンカーを右クリックして新しいタブで開くと、期待どおりにリダイレクトされます。これは、私のコードと当面の問題を示す jFiddle ですメニューを開くのはやや難しいことに注意してください。アイコンの下部をクリックする必要があります。アンカーが適切に開かない理由について誰かがアドバイスできるなら、それは大歓迎です.

HTML:

<span class="menu_item" id="settings">
    <ul>
        <li>
            <a href="#" onclick="return false;">&#9788;</a>
            <ul>
                <li>
                    <a href="/admin.php">Admin Center</a>
                </li>
                <li>
                    <a href="/login/process.php">Logout</a>
                </li>
            </ul>
        </li>
    </ul>
</span>
4

1 に答える 1

4

return false;あなたが持っているは2つのsettings_openことを行います.1つはデフォルトのアクションをキャンセルすることです(リンクをたどります)。クリックは、子孫要素から先祖要素までバブルすることに注意してください。

代わりにを変更するreturn false;event.stopPropagation()、デフォルトを妨げず、リンクが機能します。true(イベント ハンドラーから戻る理由もありません。)

フィドル

function settings_open(event){

    settings_canceltimer();
    settings_close();
    var submenu = $(this).find('ul');

    if(submenu){
        ddmenuitem = submenu.css('visibility', 'visible');
        event.stopPropagation(); // <== Change here
    }

    // Removed return true here
}
于 2013-05-27T05:06:43.113 に答える