我有一个用户点击链接时触发的函数。当他们点击另一个链接时,我想改变他们点击的第一个链接。我该怎么做呢?这就是我到目前为止所做的:
$('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 ...
});
提前致谢,如果您不确定我想要完成什么,请提出任何问题。
答案 0 :(得分:3)
这是使用闭包的好时机。
$('a').click((function () {
//private
var lastClicked;
return function () {
//your code
if(lastClicked) {
//do something to the last clicked element
}
lastClicked = this;
};
})());
答案 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
});
});