Jquery 简单的幻灯片库效果问题。滑动只发生一次

Jquery 简单的幻灯片库效果问题。滑动只发生一次,jquery,gallery,slide,Jquery,Gallery,Slide,工作演示 $(文档).ready(函数(e){ $('span#pijlr,span#pijl').show(); $('#gallery').css('overflow','hidden'); $('span#pijlr')。单击(函数(e){ 如果(!$('#galcont')。是(':animated')){ var滑动=490; var变量=$('#gallcont').css('left'); var urechts=“-980px”; 如果(变量>urechts){ $('#gall

工作演示

$(文档).ready(函数(e){
$('span#pijlr,span#pijl').show();
$('#gallery').css('overflow','hidden');
$('span#pijlr')。单击(函数(e){
如果(!$('#galcont')。是(':animated')){
var滑动=490;
var变量=$('#gallcont').css('left');
var urechts=“-980px”;
如果(变量>urechts){
$('#gallcont')。设置动画({'left':'-='+slide+'px'},'fast','linear');
}
}
});
$('span#pijll')。单击(函数(e){
如果(!$('#galcont')。是(':animated')){
var滑动=490;
var变量=$('#gallcont').css('left');
var-ulinks=“0”;
if(变量
问题在于“下一步”按钮(span#pijlr)。如果我点击一次,它会做它的想法,也会去-490px,但当我再次点击它什么也不做。我试着调整变量urechts,但是当我增加这个数字时,我说大约-1000px它会工作,只是超出了它的限制。

这是你的问题:

if(变量>urechts){

variable
urechts
是字符串,您无法对它们进行数字比较

使用
parseInt
获取数值,将行更改为如下内容:

if(parseInt(变量)>parseInt(urechts)){

您还可以将urechts/ULINK更改为整数,并且只执行一次parseInt:

var urechts = "-980px";
if(parseInt(variable) > urechts) { ... }
固定示例:


Edit:有人指出,这在Chrome中不起作用。这是因为Chrome在第一次调用
left()
值时返回“auto”,如果它没有明确定义。只需将
left:0px
添加到
.pol
的css中。否则,您需要检查“auto”在你的代码中。

这是一个非常好的工作演示。这很奇怪,它对我来说很有用。但是parseint对值-980px做了什么?它会将它转换为-980吗?
parseint
接受它找到的第一个整数,所以是的,-980。如果你不使用urechts做任何其他事情,你可以将它定义为-980,而不必调用parseInt两次。Tom,什么不起作用?我可以浏览JSFIDLE示例中的所有幻灯片。当我单击“上一步”或“下一步”时,什么都不会发生。Seltjoeks原始代码工作正常。谢谢,我在想为什么我不能设置“urechts=-980”并进行比较。这是因为urechts仍然是一个变量,对吗?
var urechts = "-980px";
if(parseInt(variable) > urechts) { ... }