2012-08-09 87 views
0

我想要的是在頁腳中最多顯示三個按鈕。我有一系列元素,所以當我在第一個元素時不想顯示前一個按鈕,而當我在最後一個元素時,我不想顯示下一個按鈕。jquery mobile if語句內循環不起作用

但我無法讓它正常工作。所有的內容都顯示得很好,但是當你到達一個入口頁面(你從概覽中選擇一個元素)時,你沒有得到導航,但是當手動刷新頁面時,它顯示正常。

我試圖調試它,當我刪除if (entryId == nav.objId)語句時,導航顯示 - 顯示錯誤的項目,但至少我不需要刷新以查看總覽按鈕。

您可以在http://kraen-ub-testen.dev.redia.dk/#overview

在行動中看到的代碼中,我有以下代碼顯示導航:

$.each(navigation, function(i,nav) { 
    var navArrLength = navigation.length; 
    var index = nav.index; 

    if (entryId == nav.objId) { 
     var navLinks = "<div data-role=\"navbar\" class=\"ui-navbar ui-mini\" role=\"navigation\"><ul class=\"ui-grid-b\">"; 

     if (index >= navArrLength-1) { 
      var prevEntry = navigation[index-1].objId; 
      navLinks += "<li><a href=\"#entry?entryId=" + prevEntry + "\" data-icon=\"arrow-l\" data-transition=\"slide\">Næste</a></li>"; 
     }else{ 
      navLinks += "<li></li>"; 
     } 

     navLinks += "<li><a href=\"#overview\" data-icon=\"grid\" data-transition=\"slideup\">Se alle</a></li>"; 

     if (index < navArrLength-1) { 
     var nextEntry = navigation[index+1].objId; 
     navLinks += "<li><a href=\"#entry?entryId=" + nextEntry + "\" data-icon=\"arrow-r\" data-transition=\"slide\">Næste</a></li>"; 
    }else{ 
     navLinks += "<li></li>"; 
    } 

    navLinks += "</ul></div>"; 

    $navigation.html(navLinks).trigger('create'); 
    } 
}); 

回答

0

我有調試通過您的代碼,我發現你有空間在在你進入年底,這是我在你的對象得到如下:

nav.objId: "5020d6a3efd1cf3a5f000012" 
entryId: "5020d6a3efd1cf3a5f000012 " 
entryId == nav.objId: false 

這就是爲什麼它會失敗,現在這裏的解決方案是,如下

使用本$.trim(entryId) == $.trim(nav.objId): true

所以我把它改成你的代碼如下:

$.each(navigation, function(i,nav) { 
    var navArrLength = navigation.length; 
    var index = nav.index; 

    if ($.trim(entryId) == $.trim(nav.objId)) { 
     var navLinks = "<div data-role=\"navbar\" class=\"ui-navbar ui-mini\" role=\"navigation\"><ul class=\"ui-grid-b\">"; 

     if (index >= navArrLength-1) { 
      var prevEntry = navigation[index-1].objId; 
      navLinks += "<li><a href=\"#entry?entryId=" + prevEntry + "\" data-icon=\"arrow-l\" data-transition=\"slide\">Næste</a></li>"; 
     }else{ 
      navLinks += "<li></li>"; 
     } 

     navLinks += "<li><a href=\"#overview\" data-icon=\"grid\" data-transition=\"slideup\">Se alle</a></li>"; 

     if (index < navArrLength-1) { 
     var nextEntry = navigation[index+1].objId; 
     navLinks += "<li><a href=\"#entry?entryId=" + nextEntry + "\" data-icon=\"arrow-r\" data-transition=\"slide\">Næste</a></li>"; 
    }else{ 
     navLinks += "<li></li>"; 
    } 

    navLinks += "</ul></div>"; 

    $navigation.html(navLinks).trigger('create'); 
    } 
}); 

我希望這會有所幫助,