0

我正在寻找这个问题,但我没有找到解决方案。我正在尝试创建一个代码,当您单击按钮时做一件事,当您稍后按下同一个按钮时做另一件事。我试图创建和“if-else”语句,但我不能(不知道)如何计算点击次数。

代码是:

<button type="submit" id="btnshwmap" onClick="init()" >Show Map</button>

还有 if-else :

function init() {
    var click =0;
    if (click === 0) {  
        do this  
        var click = 1;  
    } else {  
        do this  
    }
});//end click

基本上,如果第一次单击元素,我会尝试使用此示例Jquery

但答案是使用 Jquery 我试图不使用任何库。

非常感谢!

4

3 回答 3

3

问题是您click=0每次调用该函数时都会继续重置。

我会建议这样的事情:

function init() {
    if( !init.click) {
        // first, third, fifth etc.
        init.click = 1;
    ]
    else {
        // second, fourth...
        init.click = 0;
    }
}
于 2013-07-22T23:25:13.107 回答
2

您只需要在函数之外的全局区域中拥有点击计数器。

var click =0;

function init() {

    if (click == 0) {  
        //do this once
        click = 1;  
    } else {  
        //do this every other time
    }
});//end click
于 2013-07-22T23:25:46.860 回答
0

您可以尝试通过单击切换为按钮设置的值。就像是:

function init() {
    var value = document.getElementById('btnshwmap').value;
    if (value === 1) {  
        do this  
        document.getElementById('btnshwmap').value = 2;  
    } else {  
        do this  
        document.getElementById('btnshwmap').value = 1;
    }
});//end click

或者保留一个全局变量来跟踪点击状态,而不是每次运行函数时都设置它。

于 2013-07-22T23:24:48.613 回答