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");
});
});