0

クリックメニューに簡単なドロップダウンを作成していますが、子リンクに影響を与えるスクリプトを停止する方法がわからないようです。

$('#sidebarLeft li.page_item').each(function(){
    if ( $(this).children().length > 0 ) {
        $('a', this).attr('href','#');
    }
});

親はリンクを正しくワイプしていますが、親で停止することはありません。何か案は?

よろしくお願いします、ダン

編集

これはWordpressと連携するためwp_list_pages()のもので、すべての投稿カテゴリとそれに関連するパーマリンクが表示されます。

アイデアは、親のパーマリンクが存在しないようhrefにすることです。したがって、私が考えることができる最善の方法は、パーマリンクを「#」と交換することでした。

JSFIDDLE

4

4 に答える 4

3

これをチェックして

$('#sidebarLeft li.page_item').each(function(){
    if ( $(this).children('ul.children').length) {
        $(this).children('a').attr('href','#');
    }
});

デモ:フィドル

またはより良い

$('#sidebarLeft li.page_item:has(> ul.children)').each(function(){
    $(this).children('a').attr('href','#');
});

デモ:フィドル

于 2013-03-06T15:16:25.843 に答える
1

子を持つ要素のみを選択するようにセレクターを変更する必要があります。関連する子がもっと多いと仮定するとli、次を使用します。

$('#sidebarLeft li.page_item:has(>li)').each(function(){
    $(this).removeAttr('href');
});
于 2013-03-06T15:24:20.047 に答える
1

$('#sidebarLeft> li.page_item')は、より制限の厳しいセレクターが必要なようです。

于 2013-03-06T15:24:43.873 に答える
1
$('#sidebarLeft  li.page_item a').not('ul li ul a').attr('href','#');

これは、 background-colorを使用してデモを行うフィドルです。

于 2013-03-06T15:40:25.353 に答える