在我的项目中,有一个锚元素如下。
<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()事件的情况下禁用anchor元素。所以请在这个问题上帮助我。
答案 0 :(得分:0)
你可以试试这个
使用CSS
a{
pointer-events: none;
}
动态使用jquery
$(document).ready(function(){
$('a').css('pointer-events','none');
});
答案 1 :(得分:0)
您说您希望保留现有的属性处理程序。我想你是在谈论处理程序的定义,而不是它的处理,因为那是你试图阻止的。
$(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");
});
});
This JSFiddle显示了所有三种解决方案。我已经编写了它,因此它不会在页面加载时更改链接,而是通过单击链接来模拟页面加载。首先单击前三个链接中的任意一个,然后再模拟页面加载并再次单击任何链接,您将看到所有这些链接都有效。
答案 2 :(得分:-2)
编写如下脚本
$(window).load(function(){
$("a").removeAttr("onclick");
});