Jquery cycle插件:如何从幻灯片中链接,并在URL中反映幻灯片编号
好的,我已经根据评论更新了我的代码,谢谢你。所以后退按钮现在起作用了,但是,它停止了我的内部链接的工作,因为它们不再反映在URL中。之前我写的链接也是如此,并填写幻灯片编号:Jquery cycle插件:如何从幻灯片中链接,并在URL中反映幻灯片编号,jquery,back,jquery-cycle,Jquery,Back,Jquery Cycle,好的,我已经根据评论更新了我的代码,谢谢你。所以后退按钮现在起作用了,但是,它停止了我的内部链接的工作,因为它们不再反映在URL中。之前我写的链接也是如此,并填写幻灯片编号: <a href="javascript:setSlide(1)"></a> 这仍然有效,但不会像处理malsup代码那样更改URL。如何将这2位代码链接起来?我不是很有经验 非常感谢 $(function () { // get current slide's number function
<a href="javascript:setSlide(1)"></a>
这仍然有效,但不会像处理malsup代码那样更改URL。如何将这2位代码链接起来?我不是很有经验
非常感谢
$(function () {
// get current slide's number
function currentSlide() {
var hash = window.location.hash || '#slide-1';
return parseInt(hash.replace(/[A-Za-z#\-\/!]/g, '') - 1);
}
// global vars
var cycleSelector = $('.images'),
startSlide = currentSlide(),
hasSlid = 0;
// append some markup for the controls
cycleSelector.before()
// start jQuery Cycle
.cycle({
startingSlide: startSlide,
// when using the next/prev links
onPrevNextEvent: function(isNext, idx, slide) {
hasSlid = 1;
window.location.hash = "slide-"+ (parseInt(idx) + 1) + "";
return false;
},
// when using the pager thumbnails
onPagerEvent: function(idx, slide) {
hasSlid = 1;
window.location.hash = "slide-"+ (parseInt(idx) + 1) + "";
return false;
},
timeout: 0,
pager: '#nav',
next: '.next',
prev: '.prev',
slideResize: 0,
containerResize: 0,
speed: 500,
before: onBefore,
nowrap: 1,
// build the thumbnails
pagerAnchorBuilder: function(idx, slide) {
return '<a href="#"><p>' + $(slide).find('h1').html() + ' </p></a>';
}
});
// bind to the hashchange event
$(window).bind('hashchange', function () {
var slideNo = currentSlide();
// we only want to fire the slide change if the next button or the pager hasn't done it for us
if (hasSlid === 0) { cycleSelector.cycle(slideNo); }
// return it back to zero
hasSlid = 0;
});
// when the page loads, we need to trigger a hashchange
$(window).trigger( "hashchange" );
function onBefore() {
var title = $(this).find('h1').html();
$('#caption')
.html(title);
};
});
function setSlide(index) {
$('.images').cycle(index);
}
$(函数(){
//获取当前幻灯片的编号
函数currentSlide(){
var hash=window.location.hash | |'#slide-1';
返回parseInt(hash.replace(/[A-Za-z\-\/!]/g',)-1);
}
//全局变量
var cycleSelector=$('.images'),
startSlide=currentSlide(),
哈斯利德=0;
//为控件添加一些标记
cycleSelector.before()
//启动jQuery循环
.循环({
开始滑动:开始滑动,
//使用下一个/上一个链接时
onPrevenxtEvent:函数(isNext、idx、slide){
哈斯利德=1;
window.location.hash=“slide-”+(parseInt(idx)+1)+”;
返回false;
},
//使用寻呼机缩略图时
onPagerEvent:函数(idx,幻灯片){
哈斯利德=1;
window.location.hash=“slide-”+(parseInt(idx)+1)+”;
返回false;
},
超时:0,
寻呼机:“#导航”,
下一个:‘。下一个’,
prev:“.prev”,
幻灯片大小:0,
容器大小:0,
速度:500,,
之前:onBefore,
nowrap:1,
//建立缩略图
pagerAnchorBuilder:函数(idx,幻灯片){
返回“”;
}
});
//绑定到hashchange事件
$(窗口).bind('hashchange',函数(){
var slideNo=currentSlide();
//我们只想在“下一步”按钮或寻呼机没有为我们完成的情况下启动幻灯片更改
如果(hasSlid==0){cycleSelector.cycle(slideNo);}
//把它归零
哈斯利德=0;
});
//当页面加载时,我们需要触发hashchange
$(window.trigger(“hashchange”);
函数onBefore(){
var title=$(this.find('h1').html();
$(“#标题”)
.html(标题);
};
});
函数setSlide(索引){
$('.images')。循环(索引);
}
对于任何感兴趣的人,我都知道这一点。在上述代码中,您需要更改以下内容:
function setSlide(index) {
$('.images').cycle(index);
}
为此:
function setSlide(index) {
$('.images').cycle(index);
window.location.hash = "slide-"+ (index) + "";
return false;
}
然后继续使用以下内容创建内部链接,根据要链接到的幻灯片更改编号
<a href="javascript:setSlide(1)"></a>
您应该查看window.onhashchange事件,并编写有关此事件的逻辑代码。谢谢您的建议,我现在可以使用“后退”按钮,但它已阻止我的内部链接(幻灯片到幻灯片)注册URL。是否有可能使这些链接也具有相同的行为?再次感谢