2014-02-07 60 views
0

與jQuery移動的過渡,我想我的網站更改動態數據轉換的行爲就像一個電梯。 我有一個垂直菜單:jQuery Mobile的 -

<a href="#"> 
    <div class="menu_item"> 
     <span class="menu_number">2</span> 
    </div> 
</a> 
<a href="#"> 
    <div class="menu_item"> 
     <span class="menu_number">1</span> 
    </div> 
</a> 
<a href="#"> 
    <div class="menu_item active_item"> 
     <span class="menu_number">0</span> 
    </div> 
</a> 

我設置動態地每一頁上的數據的過渡屬性:

$(document).bind("pagechange", function() { 
var firstActive = false; 
$('.menu_item').each(function(index) { 
    if(!$(this).hasClass('active_item') && firstActive == false) 
     $(this).parent().attr('data-transition','slidedown'); 
    else if(!$(this).hasClass('active_item') && firstActive == true) 
     $(this).parent().attr('data-transition','slideup'); 
    else if($(this).hasClass('active_item')){ 
     firstActive = true; 
     $(this).parent().removeAttr('data-transition'); 
    } 
});}); 

初始狀態:

  • 菜單2 => DATA-過渡= 「了slideDown」

  • 菜單1 =>數據過渡=「了slideDown 「

  • 菜單0 =>無數據過渡

如果我點擊 」1「 菜單:

  • 菜單2 =>數據過渡=」 了slideDown」
  • 菜單1 =>無數據轉換
  • 菜單0 =>數據轉換=「上移」

然後,如果我點擊 「2」 菜單:

  • 菜單2 =>無數據過渡
  • 菜單1 =>數據過渡= 「效果基本show」
  • 菜單0 => DATA-過渡=「效果基本show」

即使菜單1有數據過渡=「效果基本show」,當我點擊它確實了slideDown(初始數據轉換)

我不理解這種行爲。

PS:如果我菜單0點擊,它確實效果基本show過渡(良好),

+0

您正在尋找在MENU_ITEM DIV的active_item類,但在標記你把它放在menu_number跨度。 – ezanker

回答

0

我不是你的菜單上期待轉變行爲十分清楚。我曾遇到需要動態更改我的菜單上的data-transition。考慮這個菜單,這時候的水平之一:

<div class="menu"> 
    <a href="#page1" data-transition="slide">First Page</a> 
    <a href="#page2" data-transition="slide" class="current_link ui-btn-active">Second Page</a> 
    <a href="#page3" data-transition="slide">Third Page</a>  
    <a href="#page4" data-transition="slide">Fourth Page</a> 
</div> 

我的要求是:如果當前頁面Second Page,當我回去First Page(通過點擊/輕敲菜單鏈接),滑動應該是倒退。我是這樣做的:

$(document).on("pagebeforeshow", function() { 
$('.current_link').prevAll().attr('data-direction', 'reverse'); 
}); 

我覺得這個解決方案的簡單優雅可能能夠幫助你的情況。 祝你好運。