单击后防止锚点击

时间:2015-07-27 11:35:52

标签: javascript jquery

我遇到一个问题,我想在点击一下后禁用锚点击。我有 在我的锚标记中设置的点击属性。下面是我的HTML

<a style="cursor:pointer;" id="someId" onclick="Myfuntion()">Verify</a>     

点击&#34;验证&#34;我正在将锚文本更改为&#34;验证...&#34;还有一件事我试图禁用这个锚点,以避免在验证逻辑之间点击。

我已经尝试了event.preventdefault()并且还将disabled属性添加到了锚点。 但没有任何作用。

请帮忙!

3 个答案:

答案 0 :(得分:0)

如果您正在使用jQuery,那么您可以更轻松地完成此操作。

在这里,我们向链接添加一个新类,以显示它已被单击。我们在点击时检查这个。

<a style="cursor:pointer;" id="someId">Verify</a>

$('#someId').on('click',function(){
    //Check if button has class 'disabled' and then do your function. 
    if(! $(this).hasClass('disabled')){
        $(this).addClass('disabled');
        Myfuntion();
        $(this).removeClass('disabled');
    }
});

答案 1 :(得分:0)

这是一个关于如何使用Javascript完成的演示。

//Pass the event target to the function
function Myfuntion(elem) {

    //If the element has no "data-status" attribute
    if (!elem.getAttribute("data-status")) {

        //Set attribute "data-status=progress"
        elem.setAttribute("data-status", "progress");
        //Change the text of the element
        elem.textContent = "Verifying...";

        //The setTimeout(s) below is only for the demp purpose
        //Lets say, your verification process takes 4 seconds
        //When complte
        setTimeout(function() {
            //Remove the attribute "data-status"
            elem.removeAttribute("data-status");
            //Notify the use that verification is done
            elem.textContent = "Verified";

            //Again, this is only for demo purpose
            setTimeout(function() {
                //User may verify again
                elem.textContent = "Verify";
            }, 1000);

        }, 4000);
    }
    return false;
}

Link to the demo

答案 2 :(得分:0)

有很多方法可以做到这一点;一个简单的方法是重新定义函数本身:

    var myFunction = function() {
        alert('clicked');
        // do whatever your function needs to do on first click, then:
        myFunction = function() { // redefine it 
            // to no-op, or to another action
            alert('second click');
        }
    }
<a onclick="myFunction()">click me</a>