Jqueryはモバイルメニューを切り替える(href javascriptを削除する)

私は自分のクライアントのためのモバイルウェブサイトのjQueryトグルメニューを作ろうとしています。私は、私はjavascriptで経験していないと私はちょうどそれを見始めたと伝える必要があります。

現在のウェブサイトはWordpressのウェブサイトなので、メニュー構造はWPによって生成されます。

Because this is generated by WP i need to use JavaScript to manipulate the data for adding the + - and > signs for toggleing and if no childeren to go directly to the page.

私は希望のアイコンでスパンを追加するためにこのjavascriptを使用します。私はこれまで管理してきました。

http://jsfiddle.net/9Dvrr/9/

しかし、まだ分かりづらい2つの問題があります。

  1. "li"に "ul"という子がある場合は、 "a"からhrefを削除します。 これにより、項目のリンクが削除され、リンクされていない状態で最も深いレベルまで直進します。
  2. 現在のところ、javascriptは複数のスパンにアイコンを追加しています。私は理由を理解できないようです。

私はこれでしばらくのんびりとしていて、誰かがこれで私を助けることができるかどうか疑問に思っていました。

0

2 答え

あなたが提供したjsfiddleでは、要素にループをかけて、ケースに応じて内側に "+"または " - "を付けてスパンを追加します。問題は、あなたが始まっているHTMLが既にその中にスパンを持っていることです。なぜならあなたはいくつかの重複を見ているからです。

あなたのWPのstrucutreのために、HTMLにそれらのスパンを追加することはできませんと言ったように、私はあなたがjsfiddleを作成中に行った悪いコピー/ペーストから来ると思います。タグ内にulがある場合、HTML内でそれらを削除し、別のページへのリンクを防ぐために return false を追加しました。

http://jsfiddle.net/wzzGG/

1
追加された
あなたはどこにいますか?残念ながらそこに残っているコピー/ペーストが残念ながら残っています。どういうわけか、 "return false"はまだタグの中にulがないメニューの最下位レベルにあります。 >の矢印を表示する必要があります。 (ちょうどあなたの "Reserveren"のようなjsfiddle)
追加された 著者 jfvandekamp,
私を助けてくれてありがとうbtw。心から感謝する!
追加された 著者 jfvandekamp,
私は次のことが問題だと思う:if($ this.has( 'ul')。children( 'a')。length> = 1){$ this.find( 'a')。append( " (UL)内のすべての "a"タグを追加してスパン+&戻り値をfalseにしますが、 "UL"内には "ul"があるため、 "ul"これらの "a"タグは既に最初の "ul"でスパンとリターンを取得しています。次の "a"タグだけを見つけ、それにスパン%を返す方法はありますか?
追加された 著者 jfvandekamp,

あなたの最初の問題は次のように解決できます:

$.each($('#menu-mobiel li'), function(i, value) {
    var $this = $(this);
    if ($this.has('ul').length > 0) {
        $this.children('a').attr('href','javascript:');
    }

Your second problem is a bit harder for me to understand. Do you only want one + for items with submenus, and one > for items with a link?

0
追加された
それが私が探しているものです。レオが私に悪いコピーを投稿した/ HTMLにいくつかのスパンを貼り付け、さらにスパンを与えるようになりました。
追加された 著者 jfvandekamp,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript