Javascript jQuery-一次单击事件可以执行不同的操作
我只想要Javascript jQuery-一次单击事件可以执行不同的操作,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我只想要 $('.div_rightColumn').fadeOut("fast"); $('.div_rightColumn').fadeIn("fast"); 要在第一次单击时运行。有没有一种方法可以告诉jQuery仅在第一次单击并仅运行时执行此操作: $('.name_filter img').live("click", function() { $('#contactMessage').fadeOut(); $('.div_rightColumn').css({
$('.div_rightColumn').fadeOut("fast");
$('.div_rightColumn').fadeIn("fast");
要在第一次单击时运行。有没有一种方法可以告诉jQuery仅在第一次单击并仅运行时执行此操作:
$('.name_filter img').live("click", function() {
$('#contactMessage').fadeOut();
$('.div_rightColumn').css({"margin" : "3px 0 0 0"});
});
其余的点击?下面已经满了…谢谢
$('.name_filter img').live("click", function() {
$('#contactMessage').fadeOut();
$('.div_rightColumn').fadeOut("fast");
$('.div_rightColumn').fadeIn("fast");
$('.div_rightColumn').css({"margin" : "3px 0 0 0"});
});
如果您只想侦听一次事件,可以使用.one
您可以执行以下操作:
var run = 0;
$('.name_filter img').live("click", function() {
$('#contactMessage').fadeOut();
if(run === 0){
$('.div_rightColumn').fadeOut("fast").fadeIn("fast");
run++;
}
$('.div_rightColumn').css({"margin" : "3px 0 0 0"});
});
另外,正如我在上面的评论中所说的,您应该真的,真的将您的live更改为代理,如:
$('.name_filter').delegate("img", "click", function() {
//code
});
永远不要使用live()。生活会让事情变得更慢,你无法解开束缚,而它只是因为遗留的原因而存在。使用委托:它回答了他/她的50%的问题。是的,
once()
也很好,但我更喜欢使用变量,以防以后出于任何原因需要动态重置它。如果使用一次,则必须重新创建元素。