$('button').toggle({
function(e){
//turn on effects for all elements clicked
$('*').toggle(
function(e){
//some nice effects when you click on elements
},
function(e){
//nice effects turned off when you click again.
}
);
},
function(e){
// turn off all effects. aka unbind all click event
});
});
它的表现并不像我预期的那样。我想基本上,在单击按钮时,单击元素时会打开效果。再次单击该元素时,它会关闭。单击按钮,禁用所有效果。
然而,我最终得到的是:
也
为什么要这样做?
答案 0 :(得分:0)
我不确定我理解你要做的是什么,但我的建议是永远不要使用 $('*')
选择器。你真的,真的希望你的'效果'能够在页面中的每个DOM元素上运行吗?请记住,这包括“关闭/开启”按钮。
我构建了一个例子,我认为你正在尝试做什么:
<head>
<title>Test</title>
<style type="text/css">
.effectsOn {
border: 1px solid blue;
cursor: pointer;
}
</style>
<script src="jquery.js"></script>
<script type="text/javascript">
$(function() {
$("#btnToggle").toggle(function() {
// turn on effects for all elements clicked
$("li").addClass("effectsOn").toggle(function() {
// some nice effects when you click on elements
alert("test");
},
function() {
// nice effects disabled when you click again
$(this).removeClass("effectsOn").unbind();
});
},
function() {
// turn off all effects; aka unbind all click event
$("li").removeClass("effectsOn").unbind();
});
});
</script>
</head>
<body>
<input type="button" id="btnToggle" value="Toggle effects" />
<ul>
<li>This is like, you know, a test.</li>
<li>This is like, you know, a test.</li>
<li>This is like, you know, a test.</li>
<li>This is like, you know, a test.</li>
</ul>
</body>
这里的关键是使用“this”关键字来引用要切换的对象,并且(重申我上面所说的)不使用 $('*')
选择器。
这是你的意思吗?