2011-10-28 3 views
0

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

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

これはWPによって生成されるため、JavaScriptを使用してトグルするために+と - 記号を追加するためのデータを操作し、ページに直接行くことができない場合は、javascriptを使用する必要があります。

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

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

しかし、私は把握することができないよう2つの問題が残っています。

  1. "li"に "ul"という子がある場合は、 "a"からhrefを削除します。 これはアイテムのリンクを削除して、リンクしないでトグルして最も深いレベルまでナビゲートします。
  2. 現在、javascriptは複数のスパンにアイコンを追加しています。理由を理解できないようです。

私はしばらくこのことをしゃべっていて、誰かがこれで私を助けてくれるのだろうかと思っていました。

答えて

1

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

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

http://jsfiddle.net/wzzGG/

+0

あなたはどこに残っていますか?残念ながらそこにはまだ悪いコピー/ペーストが残っています。どういうわけか、 "return false"はまだタグの中にulがないメニューの最下位レベルにあります。 >の矢印を表示する必要があります。 (ちょうどあなたのjtfiddleの "Reserveren"のように) – jfvandekamp

+0

btwを助けてくれてありがとう。心から感謝する! – jfvandekamp

+0

私は次の問題が考えられます: if($ this.has( 'ul')。children( 'a')。length> = 1){ $ this.find( 'a')。append( " + ").addClass( 'plus')click(function(){ これは、スパン+&戻り値falseを" UL "内のすべての" a "タグに付加しますが、" ul's " "ul"これらの "a"タグはすでに最初の "ul"でスパンとリターンを取得しています。次の "a"タグだけを見つけてスパンを返す% – jfvandekamp

0

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

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

あなたの第二の問題は、私が理解するのが少し難しいです。あなたは、サブメニュー付きのアイテムとリンク付きのアイテムのために+を1つだけ必要としますか?

+0

これは私が探しているものですレオが私に悪いコピーを投稿した/ HTMLにいくつかのスパンを貼り付け、さらにスパンを与えました。 – jfvandekamp

関連する問題