Javascript 如何删除元素';s事件处理程序并将其设置回原位?
我正在学习JQuery,并且面临一些问题Javascript 如何删除元素';s事件处理程序并将其设置回原位?,javascript,jquery,Javascript,Jquery,我正在学习JQuery,并且面临一些问题 <html> <head> <link rel="stylesheet" href="css/puzzle.css" type="text/css" /> <script src="scripts/jquery.js" type="text/javascript"></script> <script src="scripts/test
<html>
<head>
<link rel="stylesheet" href="css/puzzle.css" type="text/css" />
<script src="scripts/jquery.js" type="text/javascript"></script>
<script src="scripts/test.js" type="text/javascript"></script>
</head>
<body>
<div id="parent">
<a href="#" class="link1">link1</a>
<a href="#" class="link2">link2</a>
<a href="#" class="link3">link3</a>
</div>
<body>
</html>
$(
function() {
$("#parent").on("click", "a", function() {
linkClick(this);
});
function linkClick(link) {
$("#parent a").first().off("click");
console.log(link);
}
}
)
$(
函数(){
$(“#父项”)。在(“单击”,“a”,函数()上){
点击链接(这个);
});
函数链接单击(链接){
$(“#父级a”).first().off(“单击”);
控制台日志(链接);
}
}
)
问题1:当用户单击其中一个链接时,我是否可以删除该链接的事件haneler
问题2:如果问题1已被删除,我是否可以将onclick事件处理程序添加回“指定链接”,而不影响其他链接
谢谢你的阅读
==
我尝试使用$(“#父级a”).first().off(“单击”)取消绑定第一个链接的事件处理程序。
但无论我点击第一个链接多少次,这个控制台仍然会打印数据
如何删除链接的事件处理程序,然后在几秒钟内将其重新添加?使用off
删除事件:
$( "#parent a").first().off( "click" );
添加事件:
$( "#parent a").first().on( "click", function(){
//click event code
})
使用:
谢谢。用“开”和“关”代替“绑定”和“解除绑定”总是一个很好的练习。对不起,我已经修改了我的问题。如果不是第一个链接,而是由用户指定(随机选择),我该怎么办?现在有什么问题。使用第n个子选择器而不是第一个来对其他锚定标记执行相同的操作。所以…当用户单击链接时,我必须找到链接的位置并将其关闭,就像这样$(“#父a”).eq(第n个).off(“单击”);
//Remove click event for first element
$( "#parent a").first().off("click");
//Bind new event to element:
$( "#parent a").first().bind('click',function(){
//click event code
})