如何查看是不是两次单击相同的元素? jQuery
Posted
技术标签:
【中文标题】如何查看是不是两次单击相同的元素? jQuery【英文标题】:How to see if you're clicking the same element twice? Jquery如何查看是否两次单击相同的元素? jQuery 【发布时间】:2011-10-05 00:54:29 【问题描述】:如何检测用户是否点击了同一个 div?
我试过这个没有成功:
_oldthis = null;
var _this = $(this);
if(_oldthis == _this)
alert('You clicked this last');
_oldthis = _this;
【问题讨论】:
你声明了_oldthis 我认为您需要提供更多上下文... oyu 是否需要存储点击历史并在某处进行比较?如果是这样,出于什么原因?此外,如果您可以 psot 完整的点击处理程序而不是 jsut 其代码的摘录,这将是有用的:-) 【参考方案1】:您无法比较 jQuery 对象,但您可以比较它们包含的 DOM 对象。试试这个:
var previousTarget=null;
$("a").click(function()
if(this===previousTarget)
alert("You've clicked this element twice.");
previousTarget=this;
return false;
);
【讨论】:
注意使用“this”而不是“$(this)”很重要 @TaylorMac return false 有什么作用? @user2763557:这里我假设链接类似于<a href="#">...</a>
,浏览器的默认操作是转到#
(经常跳到页面顶部) ,我想象在这种情况下是不可取的。 return false
阻止默认浏览器行为。如果默认行为很好并且您不想阻止它,则不需要return false
。【参考方案2】:
你可以试试这个,
var _oldthis = null;
$('div').click(function()
var _this = $(this);
if(_this == _oldthis)
alert('You clicked this last');
_oldthis = null;
return false;
_oldthis = _this;
);
【讨论】:
【参考方案3】:var clickHandler;
$('a').click(function()
if(clickHandler)
clickHandler = alert('click twice');
else
clickHandler = alert('click once');
);
【讨论】:
以上是关于如何查看是不是两次单击相同的元素? jQuery的主要内容,如果未能解决你的问题,请参考以下文章
jquery双击事件(dblclick)时,不触发单击事件(click)
java - 如何在java脚本或jquery中计算相同按钮单击3次和4次时的间隔时间