jQuery循环:1个循环,多个寻呼机

时间:2011-09-07 20:20:00

标签: jquery cycle jquery-cycle

长期读者,第一次海报。 :)

我正在使用jQuery Cycle插件,可以在此处下载:http://jquery.malsup.com/cycle/

我让它在帖子部分工作正常,但是请求已经进入,在循环对象的上方和下方都有寻呼机控件。

似乎第二个寻呼机没有被选中,要么突出显示活动面板寻呼机链接,要么点击第二个寻呼机控件只需将“#”添加到地址栏中的网址。

我看到这篇文章: stackoverflow.com/questions/1663974/using-multiple-pagers-in-jquery-cycle-plugin

哪种有意义,但不确定为什么它与我的有任何不同,我的最终结果可以在这里看到:http://dev02.web.lumens.demandware.net/on/demandware.store/Sites-Lumens-Site/default/Search-Show?cgid=brands如果你一直滚动到底部。

html看起来像这样:

    <ul class="pager"></ul>
      <div id="list-screens" class="list-screens">
         <div class="list-view-row"><!-- content goes here-></div>
    </div>
    <ul class="pager"></ul>

对于Javascript:

    jQuery(document).ready(function() {
        var markupBegin = '<li><a href="#">';
        var markupEnd = "</a></li>";
        var i = 0;
        var pagerArray = ["A - E","F - J", "K - O","P - T","U - Z", "#"];
        var detailPagerArray = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","${'#'}"];
        jQuery("${'#'}list-screens").children().each(function(index, element) {
        jQuery(".list-view .pager").append(markupBegin + pagerArray[i] + markupEnd);
        //if(i <jQuery("${'#'}list-screens").children().length - 1 ) {
        jQuery(".list-view .pager").append("<li class='divider'></li>");
        //}
        i++;
        });
        jQuery(".list-view .pager").append("<li><a href=\"#\">See All Brands</a>");
        jQuery(".list-view .pager").append("<li class='clear'></li>");
        // browse listview

        jQuery("#list-screens").cycle({
            fx:     'scrollLeft', 
            easing: 'linear', 
            timeout:  0,
            speed: 750,
            width:935,
            height:500,
            pager: ".list-view .pager",
            pagerAnchorBuilder: function(idx, slide) {
            // console.log(idx);
            //for every amount its over 1 we have to add an extra to account for the divider li

            if(idx == 0) { // shouldn't have to do anything
            } else {
                idx = idx + (idx);
            }
            return ".list-view .pager li:eq("+ idx +") a";
        },
        updateActivePagerLink : function(pager, currSlideIndex) {
            if(currSlideIndex != 0) {
                currSlideIndex = currSlideIndex + currSlideIndex;
            }
            jQuery(pager).find("li").removeClass("activeSlide").filter('li:eq('+currSlideIndex+')').addClass("activeSlide");
        }
    });

我可能会尝试捕获点击并挂钩循环事件并强制它这样但但这似乎有点奇怪,这不起作用。我注意到有一个选项允许链接点击冒泡。我不确定那是不是我需要的东西。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您可以随时使用手动寻呼机创建和点击处理

可以在这里找到一个例子:

http://jquery.malsup.com/cycle/goto2.html

这会创建1个分页器,但您可以在第二个buttonContainer

中创建许多分页器
var bc = $('#buttonContainer'); 

var $container = $('#container').cycle({ 
    fx:     'scrollHorz', 
    speed:   300, 
    timeout: 0 
}); 

$container.children().each(function(i) { 
    // create input 
    $('<input type="button" value="'+(i+1)+'" />') 
        // append it to button container 
        .appendTo(bc) 
        // bind click handler 
        .click(function() { 
            // cycle to the corresponding slide 
            $container.cycle(i); 
            return false; 
        }); 
});