toggle()
函数用于为每个匹配元素的click事件绑定轮流的处理函数。
toggle()
是一个特殊的事件函数,用于为匹配元素的click事件绑定多个事件处理函数。每次触发click事件时,toggle()
函数会轮流执行其中的一个事件处理函数。
例如,我们使用toggle("click", A, B, C)
为元素的click事件绑定了3个事件处理函数A、B、C。第一次点击执行A,第二次点击执行B,第三次点击执行C,第四次点击又执行A,第五次点击又执行B ……(如果调用了多次toggle()
,它们之间是独立的)。
要删除通过toggle()
绑定的事件,请使用unbind()函数。例如:unbind("click")
。
这里介绍的toggle()
是一个特殊的click事件函数,jQuery还有一个同名的toggle()函数,用于切换元素的显示/隐藏。
该函数属于jQuery
对象(实例)。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI 特效 - .toggle() 演示</title>
<link rel="stylesheet" href="//apps.bdimg.com/libs/jqueryui/1.10.4/css/jquery-ui.min.css">
<script src="//apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//apps.bdimg.com/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>
<link rel="stylesheet" href="jqueryui/style.css">
<style>
.toggler {
width: 500px;
height: 200px;
}
#button {
padding: .5em 1em;
text-decoration: none;
}
#effect {
position: relative;
width: 240px;
height: 135px;
padding: 0.4em;
}
#effect h3 {
margin: 0;
padding: 0.4em;
text-align: center;
}
</style>
<script>
$(function() {
// 运行当前选中的特效
function runEffect() {
// 从中获取特效类型
var selectedEffect = $( "#effectTypes" ).val(); // 大多数的特效类型默认不需要传递选项
var options = {};
// 一些特效带有必需的参数
if ( selectedEffect === "scale" ) {
options = { percent: 0 };
} else if ( selectedEffect === "size" ) {
options = { to: { width: 200, height: 60 } };
} // 运行特效
$( "#effect" ).toggle( selectedEffect, options, 500 );
}; // 根据选择菜单值设置特效
$( "#button" ).click(function() {
runEffect();
return false;
});
});
</script>
</head>
<body> <div class="toggler">
<div id="effect" class="ui-widget-content ui-corner-all">
<h3 class="ui-widget-header ui-corner-all">切换(Toggle)</h3>
<p>
Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.
</p>
</div>
</div> <select name="effects" id="effectTypes">
<option value="blind">百叶窗特效(Blind Effect)</option>
<option value="bounce">反弹特效(Bounce Effect)</option>
<option value="clip">剪辑特效(Clip Effect)</option>
<option value="drop">降落特效(Drop Effect)</option>
<option value="explode">爆炸特效(Explode Effect)</option>
<option value="fold">折叠特效(Fold Effect)</option>
<option value="highlight">突出特效(Highlight Effect)</option>
<option value="puff">膨胀特效(Puff Effect)</option>
<option value="pulsate">跳动特效(Pulsate Effect)</option>
<option value="scale">缩放特效(Scale Effect)</option>
<option value="shake">震动特效(Shake Effect)</option>
<option value="size">尺寸特效(Size Effect)</option>
<option value="slide">滑动特效(Slide Effect)</option>
</select> <a href="#" id="button" class="ui-state-default ui-corner-all">运行特效</a> </body>
</html>