jQuery 事件 - undelegate() 方法
实例
从所有元素删除由 delegate() 方法添加的所有事件处理器:
- $("body").undelegate();
定义和用法
undelegate() 方法删除由 delegate() 方法添加的一个或多个事件处理程序。
语法
- $(selector).undelegate(selector,event,function)
参数 | 描述 |
---|---|
selector | 可选。规定需要删除事件处理程序的选择器。 |
event | 可选。规定需要删除处理函数的一个或多个事件类型。 |
function | 可选。规定要删除的具体事件处理函数。 |
实例
删除事件处理程序,由 delegate() 添加,来自具体选择器
如何使用 undelegate() 方法从指定元素删除所有事件处理程序。
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
function changeSize()
{
$(this).animate({fontSize:"+=3px"});
}
function changeSpacing()
{
$(this).animate({letterSpacing:"+=2px"});
}
$(document).ready(function(){
$("body").delegate("p","click",changeSize);
$("body").delegate("p","click",changeSpacing);
$("button").click(function(){
$("body").undelegate("p");
});
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
<p>点击任何段落增加字体大小和字符间距。包括本段落。</p>
<button>从 p 元素删除由 delegate() 方法添加的所有事件处理器</button>
</body>
</html>
删除指定事件类型的事件处理程序,由 delegate() 添加,来自指定元素
如何使用 undelegate() 方法从指定元素删除具体事件类型的所有事件处理程序。
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
function changeSize()
{
$(this).animate({fontSize:"+=3px"});
}
function changeSpacing()
{
$(this).animate({letterSpacing:"+=2px"});
}
$(document).ready(function(){
$("body").delegate("p","click",changeSize);
$("body").delegate("p","click",changeSpacing);
$("button").click(function(){
$("body").undelegate("p","click");
});
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
<p>点击任何段落增加字体大小和字符间距。包括本段落。</p>
<button>从 p 元素删除由 delegate() 方法添加的所有 "click" 事件处理器</button>
</body>
</html>
删除由 delegate() 添加的具体函数
如何使用 undelegate() 方法为事件处理程序删除来自特定事件类型的特定函数。
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
function changeSize()
{
$(this).animate({fontSize:"+=3px"});
}
function changeSpacing()
{
$(this).animate({letterSpacing:"+=2px"});
}
$(document).ready(function(){
$("body").delegate("p","click",changeSize);
$("body").delegate("p","click",changeSpacing);
$("button").click(function(){
$("body").undelegate("p","click",changeSize);
});
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
<p>点击任何段落增加字体大小和字符间距。包括本段落。</p>
<button>从 p 元素删除由 delegate() 方法添加的事件处理器 changeSize()</button>
</body>
</html>