2

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

$('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

4 回答 4

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/

于 2012-07-23T17:07:30.310 回答
0

最后使用全局变量。

就像是

$(function(){
    var lastClick;
    $('a').click(function(){
        //do stuff to last click here
        lastClick = $(this); //make this at the bottom
    });
});
于 2012-07-23T17:05:36.677 回答
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 ...
});
于 2012-07-23T17:04:26.023 回答
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);
  }
});

像那样?

于 2012-07-23T17:04:38.950 回答