你怎么能定位前一个$(这个)?

时间:2012-07-23 17:01:11

标签: javascript jquery

我有一个用户点击链接时触发的函数。当他们点击另一个链接时,我想改变他们点击的第一个链接。我该怎么做呢?这就是我到目前为止所做的:

$('a').click(function(){
  //some code ...
  if ( $(this).attr('id') != last.attr('id') ) {
    $('a').click(function()
      /*the original $this*/.parent().parent().quickFlipper({refresh: 0});
      /*the original last*/.parent().parent().quickFlipper({refresh: 0});
    });
    var that = this;
    var that2 = last;
    setTimeout(function(){
      $(that).parent().parent().quickFlipper({refresh :0});
      $(that2).parent().parent().quickFlipper({refresh :0});
    }, 1500);
  //some more code ...
});

提前致谢,如果您不确定我想要完成什么,请提出任何问题。

4 个答案:

答案 0 :(得分:3)

这是使用闭包的好时机。

$('a').click((function () {

   //private
   var lastClicked;

   return function () {
      //your code

      if(lastClicked) {
         //do something to the last clicked element
      }

      lastClicked = this;
   };
})());

小提琴:http://jsfiddle.net/iambriansreed/Mus6N/

答案 1 :(得分:0)

var previousElement;

$('a').click(function(){
  //some code ...
  previouseElement = ($this);
  if ( $(this).attr('id') != last.attr('id') ) {
    $('a').click(function()
      $(this).parent().parent().quickFlipper({refresh: 0});
      previousElement.parent().parent().quickFlipper({refresh: 0});
    });
    var that = this;
    var that2 = last;
    setTimeout(function(){
      $(that).parent().parent().quickFlipper({refresh :0});
      $(that2).parent().parent().quickFlipper({refresh :0});
    }, 1500);
  //some more code ...
});

答案 2 :(得分:0)

var lastClicked = null;

$('a').click(function(){
  //some code ...
  if (lastClicked && $(this).attr('id') != lastClicked.attr('id') ) {
       $(this).parent().parent().quickFlipper({refresh: 0});
      lastClicked.parent().parent().quickFlipper({refresh: 0});

    lastClicked = $(this);
  }
});
是那样的?

答案 3 :(得分:0)

最后使用全局变量。

类似

$(function(){
    var lastClick;
    $('a').click(function(){
        //do stuff to last click here
        lastClick = $(this); //make this at the bottom
    });
});