如何移除锚点的onclick事件?
如何移除锚点的onclick事件?
我想要移除onclick属性,但是我使用了jQuery,onclick事件并没有被移除。以下是我的代码:
function getBusinesses(page){ if(page==0){ alert("你已经在第一页了"); $("#previous a").removeAttr("onclick"); } else{ $.ajax ({ type: "POST", url: "getbusiness.php", data: "page="+page, success: function(msg) { $("#new2").html(msg); } }); } } <
如何移除锚点的onclick事件?
问题原因:在代码中使用了<a>
标签内的onclick
属性。这种方式不仅代码混乱,还可以使用jQuery来绑定/解绑DOM元素的点击处理程序。
解决方法:
1. 使用jQuery绑定点击处理程序:
$("#previous a").click(function(e){ // 阻止默认行为,防止锚点重定向到href e.preventDefault // 触发函数。假设你有一个pagesLeft计数器,将递减 getBusinesses(pagesLeft) })
2. 修改JS函数,在pagesLeft达到0时解绑处理程序:
var pagesLeft = 3 // 从某个地方获取 function getBusinesses(page){ if(page==0){ alert("you are already on First Page"); // 在这里使用jQuery的.unbind('click') $("#previous a").unbind('click'); } else{ pagesLeft-- $.ajax({ type: "POST", url: "getbusiness.php", data: "page="+page, success: function(msg) { $("#new2").html(msg); } }); } }
3. 如果想保留原始代码,可以按照以下方式修改:
<div id="new34" style=" width:1028px; height:15px; background#fff; float:left;"> <div id="previous" style="float:left; width:20px;"> <a href="#"><</a><!-- 这里没有onclick和href="#" --> </div> </div>
var pagesLeft = 3 // 从某个地方获取 function getBusinesses(page){ if(page==0){ alert("you are already on First Page"); // 在这里使用jQuery的.unbind('click') $("#previous a").unbind('click'); } else{ pagesLeft-- $.ajax({ type: "POST", url: "getbusiness.php", data: "page="+page, success: function(msg) { $("#new2").html(msg); } }); } }
4. 最后的修改方式如下,但是代码中存在一些主要问题:
<div id="new34" style=" width:1028px; height:15px; background#fff; float:left;"> <div id="previous" style="float:left; width:20px;"> <!-- 如何设置getBusinesses(1)作为参数? --> <a onclick="getBusinesses(1)" href="javascript:void(0)">aaa</a></div> <script> function getBusinesses(page){ if(page==0){ alert("you are already on First Page"); $("#previous a").removeAttr("onclick"); } else{ // 在这里应该递减getBusinesses的参数 // 但是如何做到呢? $("#previous a").attr("onclick","getBusinesses(0)"); $.ajax ({ type: "POST", url: "getbusiness.php", data: "page="+page, success: function(msg) { $("#new2").html(msg); } }); } } </script>
完整的修改可以在以下链接中查看:这里是完整的修改代码