我有一个关于听第二次点击的问题, 所以我在这里有2个Div和1个输入,并且每次点击 每个元素都会改变每个元素的背景颜色。
我想点击第二次点击,所以如果我在同一个元素上点击两次, 比shuld显示警报。
JavaScript:
var divTag = document.getElementsByTagName("div");
for (var i = 0; i < divTag.length; i++) {
if (divTag[i].tagName == "DIV" || divTag[i].tagName == "div") {
if (divTag[i].addEventListener) {
divTag[i].addEventListener('click', callback,false);
}
else if (divTag[i].attachEvent) {
divTag[i].attachEvent('on' + 'click',callback);
}
}
}
function callback(e) {
e = e || window.event;
var target = e.target || e.srcElement;
target.style.backgroundColor = "green";
e.stopPropagation();
}
HTML:
<div id="old">
<input style="margin: 10px;" type="textbox" />
<div id="new"></div>
</div>
CSS:
#old {
width:200px;
height:200px;
background-color:yellow;
}
#new{
width:20px;
height:20px;
background-color:lightblue;
}
你能帮帮我吗?
提前谢谢。
答案 0 :(得分:1)
使用变量numberOfClicks
并在每次单击div时递增它。
FIDDLE 此处
答案 1 :(得分:0)
如果您的意思是双击,则可以使用dblclick
代替click
:
divTag[i].addEventListener('dblclick', callback,false);
答案 2 :(得分:0)
为什么不尝试使用ondblclick
事件。可能会更容易一些。附上element.addEventListener("dblclick", /* whatever here */ )
答案 3 :(得分:0)
是否可以向目标选择器添加属性,即data-count =&#34; 0&#34;然后当你单击元素时听取这个然后然后将值增加到1,这样下次你点击时可以检查该值是0还是1,然后根据它做你需要做的任何事情? / p>
希望有意义/有帮助, 路易斯
答案 4 :(得分:0)
不确定这是最好的方法..但你可以实施一个计数器..
var counter = 0;
if (counter %2 === 0) {//do stuff}
我在这里给你做了......
你可能想稍微改变它,但希望这会有所帮助。
答案 5 :(得分:0)
如果要检测单击是否在同一元素上,则可以通过以下方式修改功能:
var target = ''; // Make this variable global.
function callback(e) {
e = e || window.event;
if ((target == e.target) || (target == e.srcElement)) { //Check whether the event's target is same as the previous.
alert('hello');
} else target = e.target || e.srcElement;
if (prevDiv) {
prevDiv.style.backgroundColor = "";
}
target.style.backgroundColor = "green";
prevDiv = target;
e.stopPropagation();
}
演示:http://jsfiddle.net/v6d6veyv/1/
如果你想要双击,那就听一下dblclick
事件
答案 6 :(得分:0)
我假设你想在点击的div是相同的时候发出警告..所以这应该做的工作:
if(prevDiv === target)
alert('same div');
结果:
function callback(e) {
e = e || window.event;
var target = e.target || e.srcElement;
if(prevDiv === target)
alert('same div');
if(prevDiv) {
prevDiv.style.backgroundColor = "";
}
target.style.backgroundColor = "green";
prevDiv = target;
e.stopPropagation();
}
答案 7 :(得分:0)
如此简单的事情......
<强> HTML:强>
<span class="clickable">Click me!</span>
<强> JS:强>
$('.clickable').on('click', function() {
if(this.clicked){
alert('oh hai!');
return;
}
this.clicked = true;
$(this).text('Click me again!');
});
答案 8 :(得分:0)
通过初始化变量并检查以前单击过的每次点击。
看一下这个
JSFiddle Link