removeClass()在if语句之外但不在其中

时间:2012-07-18 17:54:03

标签: javascript jquery

我有以下HTML:

<div id="wrapper">
      <div class="p1">
          <a href="#" class="quickFlipCta"><img src="Test Pictures/QuestionMark.gif" /></a>
      </div>

      <div class="p2">
          <a href="#" class="quickFlipCta"><img src="Test Pictures/flower.gif" /></a>
      </div>
</div>

除了一些其他的东西,我希望在某个条件后删除类“quickFlipCta”。以下是我的代码片段:

if ( $(this).attr('id') != last.attr('id') ) {
  var that = this;
  var that2 = last;
  setTimeout(function(){
     $(that).parent().parent().quickFlipper({refresh :1}); 
     $(that2).parent().parent().quickFlipper({refresh :1}); 
  }, 1500);
  $('a').removeClass('quickFlipCta');
}

第一个陈述完美无缺:

    setTimeout(function(){
        $(that).parent().parent().quickFlipper({refresh :1});
        $(that2).parent().parent().quickFlipper({refresh :1});
    }, 1500);

但是$('a').removeClass('quickFlipCta');不起作用。 我认为它有问题,但我在if语句之外尝试了它并且它有效。什么可能导致这个?提前谢谢。

1 个答案:

答案 0 :(得分:1)

变量最后只有值 null ,或 $(this)

$('a').click(function() {
    if (last) {
        // ...
        // if this if is executed that means last = $(this), 
        // so the condition returns false
        if ($(this).attr('id') != last.attr('id')) {
            // this code is never executed
            $('a').removeClass('quickFlipCta');
        }
        // ...
        last = null;
    } else {
        last = $(this);
    }
});