2012-05-05 208 views
1

這是我的第一篇文章在這裏,我希望我不會讓很多錯誤......jQuery.cycle尋呼機分頻器

我用美妙的jquery.cycle插件在我的網站的新聞滑塊模塊。現在,我想補充一個尋呼機,看起來像這樣:

01/02/3月4日

這意味着我有每個尋呼機號碼後加上「分隔」(=「/」斜槓)除了最後一個。但我無法弄清楚我能做到這一點。

這是我有:

// redefine Cycle's updateActivePagerLink function 
$.fn.cycle.updateActivePagerLink = function(pager, currSlideIndex) { 
    $(pager) 
     .find('a') 
     .removeClass('active') 
     .filter('a:eq('+currSlideIndex+')') 
     .addClass('active'); 
}; 



$('div.teaser-news') 
    .after('<div class="pager-news"></div>') 
    .cycle({ 
     fx:  'scrollRight', 
     rev:  1, 
     speed: 'slow', 
     timeout: 6000, 
     pager:'.pager-news', 
     pagerAnchorBuilder: function(idx, slide) { 

      var numSlides = $("div.teaser-news").length; 

      if(idx < 10){ 
       idx += '<a href="#">0' + idx + '</a><span class="divider">&nbsp;&#47;&nbsp;</span>'; 
      } else { 
       idx += '<a href="#">' + idx + '</a><span class="divider">&nbsp;&#47;&nbsp;</span>'; 
      } 

      return idx; 
     } 
}); 

任何人可以幫助我擺脫最後一個斜線的? 謝謝!

+0

請單擊綠色箭頭標記以下答案之一,如果它對您有幫助。 – lucuma

回答

0
if(idx < 10){ 
    idx += '<a href="#">0' + idx + '</a>'; 
    if (idx+1 != numSlides) { 
     idx += '<span class="divider">&nbsp;&#47;&nbsp;</span>'; 
    } 
} else { 
    idx += '<a href="#">' + idx + '</a>'; 
    if (idx+1 != numSlides) { 
     idx += '<span class="divider">&nbsp;&#47;&nbsp;</span>'; 
    } 
} 

恕我直言

0

我寧願只使用一個墊功能:

function zeroPad(num, places) { 
    var zero = places - num.toString().length + 1; 
    return Array(+(zero > 0 && zero)).join("0") + num; 
} 

,然後你可以刪除的if/then,只是做:

var slash = "/"; 
if (idx=(numSlides-1)) 
    slash = ""; 

return zeroPad(idx+slash, 2); 

還有幾個例子How to output integers with leading zeros in JavaScript

0

lucuma增加的零點功能對我來說很方便,雖然經過一些實驗後,我發現輸出不喜歡在包裝外添加。所以,當我試圖做return <a href='#'>" + zeroPad(n,2) + "</a>&nbsp;/&nbsp;它忽略收盤</a>

後的標記來避開這個問題我不得不添加一個包裹<li>,所以我可以再放入包裝內的斜槓。我已將我的代碼修改爲匹配

$('.carousel .images').cycle({ 
    timeout: 5000, 
    pager : '.pager-news', 
    pagerAnchorBuilder: function(idx, slide) { 
    var n = idx+1; 
    var wrapper = $("div.teaser-news"); 
    if(n != wrapper.children().length){ 
     return "<li><a href='#'>" + zeroPad(n,2) + "</a>&nbsp;/&nbsp;</li>"; 
    }else{ 
     return "<li><a href='#'>" + zeroPad(n,2) + "</a></li>"; 
    } 
    } 
});