jQuery函数if语句

时间:2014-06-17 19:35:00

标签: jquery function

我创建了一个名为VoteSlide的函数。当我点击按钮.prev.next时,它会执行该功能。但正如您所看到的,该功能对两个按钮的反应相同。所以我希望函数在按下不同的按钮时做出不同的反应。一个函数应该有margin-left -100%而另一个函数应该有margin-left: 100%

但是我如何创造那么小的差异呢?我在考虑使用if / else语句。但是我还没有习惯在这种情况下弄清楚如何应用它(或者如果它是解决这个问题的正确方法)。

function VoteSlide() {

  var prev = this;
  $(prev).find(".output").html(function(i, val){return val*1+1});
  $(prev).removeClass("prev")

  $("body").find(".art").each(function(){
    $(this).prepend('<img src="http://no-illusions.nl/random/demo1/assets/images/' + images[index] + '">');
    if(index < images.length+0 ){
      index++;
    }
    else{
      $("#nav" ).fadeOut();
    };
  });

  $(this).closest('body').find(".art img:last").stop().animate
  ({'margin-left': '-100%',}, 500,
   function(){
     $(this).remove();
     $(prev).addClass("prev");
   }
  );
}

$('#nav').delegate('.prev', 'click', VoteSlide);
$('#nav').delegate('.next', 'click', VoteSlide);

1 个答案:

答案 0 :(得分:2)

您可以使用if语句检查所单击按钮的类,以确定它是prev还是next按钮。尝试将它放在VoteSlide函数的最顶部:

if($(this).hasClass('prev')) {
  var margin = '-100%';
} else {
  var margin = '100%';
}

然后在这里使用保证金变量:

$(this).closest('body').find(".art img:last").stop().animate(
   {'margin-left': margin},
   500,
   function(){
     $(this).remove();
     $(prev).addClass("prev");
   }
);