禁用jQuery .toggle()方法

时间:2011-09-28 22:09:09

标签: jquery

我正在寻找一种方法来禁用附加到div

.toggle()
if (condition) {
    $("#div").toggle(
        function() {
            do this
        },
        function() {
            do that
        }
    );
}
else {

    // How do I achieve this?
    $("#div").disableToggle(

    );
}

更多解释:

这是一个地图应用程序。有问题的toggle绑定到图像按钮。地图在缩放级别4加载。用户放大,只有当用户放大到超过缩放级别6时,有问题的按钮才会激活。一旦用户缩小到低于6级,我想要切换按钮再次变得不活跃。

5 个答案:

答案 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"));

Demo.

答案 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">&nbsp;</div>

<强> JS

$('.button_toToggle').click(function(){
    $('.togglable').toggle();
});
$('.button_disableToggle').click(function(){
    $('.happyDiv').removeClass('togglable');
});

答案 4 :(得分:1)

如果您没有将匿名函数传递给toggle(),则可以使用on this forum post描述的技术取消绑定事件。