jQuery.cycle 寻呼机分隔符

Posted

技术标签:

【中文标题】jQuery.cycle 寻呼机分隔符【英文标题】:jQuery.cycle pager divider 【发布时间】:2012-05-05 11:03:00 【问题描述】:

这是我在这里的第一篇文章,希望我不会犯很多错误......

我在我的网站上使用了出色的 jquery.cycle 插件作为新闻滑块模块。现在我想添加一个如下所示的寻呼机:

01 / 02 / 03 / 04

这意味着我必须在除最后一个之外的每个寻呼机号码之后添加“分隔符”(=“/”一个正斜杠)。但我不知道我怎么可能做到这一点。

这就是我所拥有的:

// 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; 
        
);

谁能帮我去掉最后一个斜线? 谢谢!

【问题讨论】:

如果对您有帮助,请单击绿色箭头标记以下答案之一。 【参考方案1】:

lucuma 添加的零填充功能对我来说很方便,尽管经过一些实验后,我发现输出不喜欢在包装器之外添加。因此,当我尝试执行 return &lt;a href='#'&gt;" + zeroPad(n,2) + "&lt;/a&gt;&amp;nbsp;/&amp;nbsp; 时,它在关闭 &lt;/a&gt; 后忽略了标记

为了解决这个问题,我必须添加一个包装&lt;li&gt;,这样我就可以在包装内添加正斜杠。我已经修改了我的代码以匹配

$('.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>"; 
     
   
 );

【讨论】:

【参考方案2】:
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>';
   

恕我直言

【讨论】:

【参考方案3】:

我更喜欢只使用 pad 功能:

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

【讨论】:

以上是关于jQuery.cycle 寻呼机分隔符的主要内容,如果未能解决你的问题,请参考以下文章

多个 jQuery Cycle 寻呼机导航

如何在jquery cycle插件中更改寻呼机文本

jQuery Cycle - 构建自定义寻呼机

jQuery图片切换插件jquery.cycle.js

jQuery图片切换插件jquery cycle js

jQuery.Cycle.Lite