【发布时间】:2011-09-09 20:49:15
【问题描述】:
长期阅读,第一次海报。 :)
我正在使用 jQuery Cycle 插件,可以在这里下载:http://jquery.malsup.com/cycle/
我让它在帖子部分工作得很好,但是已经请求在循环对象的上方和下方设置寻呼机控件。
似乎第二个寻呼机没有被选中,无论是突出显示活动面板寻呼机链接并单击第二个寻呼机控件,都只是将“#”添加到地址栏中的 url。
我看到了这个帖子: 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");
}
});
我可能会尝试捕获点击并挂钩到循环事件并以这种方式强制它,但这似乎有点奇怪,这不起作用。我确实注意到有一个选项可以让链接点击冒泡。不太确定这是否是我需要的。感谢您的所有帮助。
【问题讨论】:
-
您尝试将寻呼机:“.list-view .pager”更改为“.pager”?
-
它的样式是这样的,因为还有其他部分使用分页器样式模型,这就是我指定“.list-view .pager”的原因,只是“.pager”会选择其他部分,例如“.detail-view .pager”和“.collection-view .pager”。似乎是循环的胆量,以防止踩到自己的脚趾来处理控件,而无需完全按照您的方式使用寻呼机样式,可能是通过执行类似(相对于单击的链接)$(this).parents( [pagerSelector])。似乎最好的办法是在外部处理它
标签: jquery cycle jquery-cycle