Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery禁用加载时的锚元素?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何使用jquery禁用加载时的锚元素?

Javascript 如何使用jquery禁用加载时的锚元素?,javascript,jquery,html,Javascript,Jquery,Html,在我的项目中,有一个锚元素,如下所示 <a href="javascript:void(0);" onclick="<?php if ($logged_uid == 0) { ?>login('mystudyplus','free','topicid8:41');$('#login_msg').show();<?php } else { ?>addtodashboard('mystudyplus','free','topicid8:41');<?php } ?

在我的项目中,有一个锚元素,如下所示

<a href="javascript:void(0);" onclick="<?php if ($logged_uid == 0) { ?>login('mystudyplus','free','topicid8:41');$('#login_msg').show();<?php } else { ?>addtodashboard('mystudyplus','free','topicid8:41');<?php } ?>" class="btndownld" style="margin-left:120px;margin-top:200px;background:#f60098;">TRY NOW</a>


我只想在页面完全加载时禁用上面的锚元素。实际上,我使用了jquery的removeattr属性。但我只想禁用锚元素,而不删除onClick()事件。所以请帮我回答这个问题。

写下面这样的脚本

$(window).load(function(){
    $("a").removeAttr("onclick");
});
你可以试试这个

使用CSS

a{
    pointer-events: none;
}
动态使用jquery

$(document).ready(function(){
   $('a').css('pointer-events','none');

});

您说希望保留现有的属性处理程序。我想你们谈论的是处理器定义,而不是它的处理,因为这是你们试图阻止的

解决方案1:完全删除属性 解决方案2:更改属性代码 解决方案3:更改属性但不更改存储定义
显示所有三种解决方案。我编写它的目的是,它不会在页面加载时更改链接,而是通过单击链接来模拟页面加载。首先单击前三个链接中的任何一个,然后模拟页面加载,然后再次单击任何链接,您将看到它们都正常工作。

为什么要保留
onclick
属性?如果要禁用属性定义的事件处理程序,则必须1:更改它或2:加载时删除它。这只会阻止事件发生传播和默认HREF功能,在本例中,它定义javascript功能时不起任何作用。将此视为证据。@RobertKoritnik谢谢你的朋友提供的信息
.prop(“disabled”,true);)这也不会禁用现有的属性定义的事件处理程序。
$(function(){
    $(window).load(function(){
        $("a").removeAttr("onclick");
    });
});
$(function(){
    $(window).load(function(){
        var link = $("a");
        var existing = link.attr("onclick");
        link.attr("onclick", "return;" + existing);
    });
});
$(function(){
    $(window).load(function(){
        var link = $("a");
        var existing = link.attr("onclick");
        link.attr("data-onclick", existing)
            .removeAttr("onclick");
    });
});