2011-11-11 106 views
1

這是我的腳本,我使用切換,所以我可以動畫一個滑動菜單。jquery切換使用2個元素

$("div.show-menu").click().toggle(
     function() { 
      // first alternation 
      $("#slideover").animate({ 
       right: "512px" 
       }, 300); 
      $(".menu-button").html('close menu'); 


     }, function() { 
      // second alternation 
      $("#slideover").animate({ 
       right: "0" 
       }, 300); 
      $(".menu-button").html('open menu'); 

    }); 

雖然我真的需要使用頁面上的2個元素的切換工作。例如見下文......

<div class="show-menu one">open menu</div> // this is element one 

<div class="show-menu two">open menu</div> // this is element two 

我需要它,這樣,如果一個元素獲得的點擊第一個,你可以使用元素兩個在第一次點擊關閉菜單。現在發生的事情是,你必須點擊元素兩次,才能關閉菜單 - 反之亦然

我想這是切換進行中,任何幫助將非常感謝。

乾杯 喬希

+0

所以你的說法。如果顯示元素1,則如果單擊第二個菜單,則會關閉第一個元素,然後觸發第二個元素顯示,反之亦然 –

+0

'.toggle'只接受一個回調函數,而不是兩個:http://api.jquery .com/toggle/ – Blazemonger

回答

1
$('.show-menu').on('click', function() { 

    //check the state of the .menu-button, if it's closed then run the open animation, if it's open then run the close animation 
    if ($(".menu-button").html() == 'close menu') { 
     $("#slideover").animate({ 
      right: "0" 
     }, 300); 
     $(".menu-button").html('open menu'); 
    } else { 
     $("#slideover").animate({ 
      right: "512px" 
     }, 300); 
     $(".menu-button").html('close menu'); 
    } 
}); 

.on()在jQuery的1.7是新的,在這種情況下,替代.bind()如果你正在使用jQuery < 1.7然後使用.bind()

+0

這看起來很有希望,但我無法去工作 - 我試圖獲得它的jist,但可以讓它運行任何動畫。我寫錯了我的html,我想知道這是爲什麼。我的按鈕實際上看起來像這樣... '

//這是元素之一' ' //這是元素之二' – Joshc

+0

對不起,它又錯了。 '

//這是元素one' ' //這是元素two' – Joshc

+0

它的工作 - 我還沒有更新到1.7.0的jQuery - 萬分感謝夥計! – Joshc

0

什麼

$('.show-menu').on('click', function() { 
    if ($("#slideover").css("right") == '512px') { 
     $("#slideover").animate({ 
      right: "0" 
     }, 300); 
     $(".menu-button").html('open menu'); 

    } else { 
     $("#slideover").animate({ 
      right: "512px" 
     }, 300); 
     $(".menu-button").html('close menu'); 
    } 
}); 
+0

再次看起來很有前途,但根本不運行動畫。我確實把錯誤的標籤貼上了錯誤的標籤 - 儘管我不確定這是否是問題,沒有錯誤,只是沒有點擊動畫而已。 '

//這是元素之一 //這是元素二' – Joshc

+0

我還沒有更新到jquery-1.7 - 更新和上面的代碼工作。但你的代碼奇怪地沒有?從邏輯上講,我看不出爲什麼它沒有。無論如何感謝兄弟 – Joshc