使用jquery从头开始编写javascript轮播滑块 - 使用变量

时间:2011-09-21 19:37:31

标签: javascript jquery

所以我的代码在某种程度上有效。我有一个滑块,有一些左边和一些右键。

我要做的是确保它不会以某种方式滑过某个点,因为会有固定数量的幻灯片。所以我引入了一个名为slideWidth的变量,我试图用它来跟踪当前的边距。如果它达到一定数量我只想要一个按钮工作。我下面的代码似乎没有改变 - 我可以无限次地点击左键,而且从不正确...

<script>
$(document).ready(function() {

var slideWidth=0;

if (slideWidth == 0)
 {

    $("#slideLeft").click(function(){
      $(".slideOverflowHide").animate({"margin-left": "-=1100px"}, "slow");
      slideWidth = slideWidth - 1100;
    });

 }else if (slideWidth == -3300){

     $("#slideRight").click(function(){
      $(".slideOverflowHide").animate({"margin-left": "+=1100px"}, "slow");
      slideWidth = slideWidth + 1100;
    });

 }else{

    $("#slideRight").click(function(){
      $(".slideOverflowHide").animate({"margin-left": "+=1100px"}, "slow");
      slideWidth = slideWidth + 1100;
    });

    $("#slideLeft").click(function(){
      $(".slideOverflowHide").animate({"margin-left": "-=1100px"}, "slow");
      slideWidth = slideWidth - 1100;
    });

 }

});
</script>

2 个答案:

答案 0 :(得分:2)

此代码由内而外。您应该在点击功能中执行宽度检查

$("#slideLeft").click(function(){
  if(slideWidth == 0) {

答案 1 :(得分:2)

document.ready仍为0时,if slideWidth上的if检查仅运行一次,因此click事件永远不会附加到slideRight按钮。

此外,if检查需要在click事件中移动,因此每次单击其中一个按钮(左或右)时它都会运行。

另外,每个按钮只需附加一次点击事件。我可以看到你试图做两次。