JavaScript点击第二次点击

时间:2014-11-21 16:03:44

标签: javascript

我有一个关于听第二次点击的问题, 所以我在这里有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;
}

http://jsfiddle.net/v6d6veyv/

你能帮帮我吗? 提前谢谢。

9 个答案:

答案 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}

我在这里给你做了......

http://jsfiddle.net/n516avaf/

你可能想稍微改变它,但希望这会有所帮助。

答案 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();
}

jsfiddle

答案 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!');
});

小提琴:http://jsfiddle.net/1ny7o6o9/

答案 8 :(得分:0)

通过初始化变量并检查以前单击过的每次点击。 看一下这个 JSFiddle Link