使用JavaScript禁用/启用锚标记

时间:2016-08-31 15:36:29

标签: javascript html

我正在尝试使用JavaScript启用锚元素,但看起来我遇到了一些语法问题。禁用部分工作正常,但在一段时间间隔后锚没有启用。

形式:

<a id="downloadReportLink"
   href="#x"
   title="This function will provide you a 30 day download of all your eSign transactions."
   onclick="document.getElementById('viewIntegrationReport').submit(), doEverything(this)">

   <span>Export E-Sign Information</span>
</a>

JS函数:

function disableLink(link) {
    link.onclick = function(event) {
        event.preventDefault();
    }
}

function enableLink(link) {
    link.onclick = undefined;
}

function doEverything(link) {
    disableLink(link);
    setTimeout(function() {
            enableLink(link);
        },
        4000
    );
}

我假设link.onclick = undefined会启用锚点,但事实并非如此。

我在这里做错了吗?

2 个答案:

答案 0 :(得分:1)

有点不清楚你想要什么行为,但假设你想在四秒间隔之后恢复锚标签的原始ua = MyModel1() ua.name = 'hi' print(ua) #prints hi ub = MyModel2() ub.another_param = 'hi again' print(ub) #prints hi again ,我认为这对你有用。您将onclick设置为link.onclick,但您确实希望将其设置回原来的状态。

(我还假设您正在拦截表单提交,而不是实际导航离开页面。)

undefined
function disableLink(link) {
    link.onclick = function(event) {
        event.preventDefault();
    }
}

function enableLink(link, onclick) {
    link.onclick = onclick;
}

function doEverything(link) {
    var oldOnclick = link.onclick;
    disableLink(link);
    setTimeout(function() {
        enableLink(link, oldOnclick);
    }, 4000);
}

答案 1 :(得分:-1)

试试这个:

function disableLink(link) {
link.addEventListener("click", function(){
return false;
});

 }

function enableLink(link) {
link.addEventListener("click", function(){
return true;
});