我正在寻找一种方法来禁用附加到div
的.toggle()
if (condition) {
$("#div").toggle(
function() {
do this
},
function() {
do that
}
);
}
else {
// How do I achieve this?
$("#div").disableToggle(
);
}
更多解释:
这是一个地图应用程序。有问题的toggle
绑定到图像按钮。地图在缩放级别4加载。用户放大,只有当用户放大到超过缩放级别6时,有问题的按钮才会激活。一旦用户缩小到低于6级,我想要切换按钮再次变得不活跃。
答案 0 :(得分:6)
为什么不解开点击?
$('#div').unbind('click');
答案 1 :(得分:3)
您可以将condition
放在函数内:
$("#div").toggle(
function() {
if (condition) {
//do this
}
},
function() {
if (condition) {
//do that
}
}
);
答案 2 :(得分:3)
您可以使用.cleanData()
:
// this will destroy all data bound to that element
$.cleanData($("#div"));
答案 3 :(得分:2)
这是一种方式:
删除为切换选择的类。在这里小提琴:http://jsfiddle.net/leifparker/rSP34/2/
<强> HTML 强>
<div class="button_toToggle"> Toggle it! </div>
<div class="button_disableToggle"> Disable Toggle </div>
<div class="happyDiv togglable"> </div>
<强> JS 强>
$('.button_toToggle').click(function(){
$('.togglable').toggle();
});
$('.button_disableToggle').click(function(){
$('.happyDiv').removeClass('togglable');
});
答案 4 :(得分:1)
如果您没有将匿名函数传递给toggle()
,则可以使用on this forum post描述的技术取消绑定事件。