在无关事件之后重新绑定.toggle()事件?

时间:2013-10-14 13:13:57

标签: javascript jquery

我有一个网格过滤器,正在显示/隐藏切换,如下所示:

$("#btnFilter").toggle(function () {
    // show filter
}, function () {
    // hide filter
});

网格是交互式的,双击它将使用新的动态HTML覆盖现有网格。我不希望在与网格交互时显示我的过滤器,因此在我的网格onClick()事件中,我将使用与切换函数中相同的// hide filter代码。

唯一的问题是,因为我绕过了.toggle()事件,所以当我试图手动隐藏它时,我需要点击#btnFilter两次(这是我不想要的)。

任何想法都会很棒!

我很欣赏答案,但逻辑并不是我真正关心的问题,任何想法为什么切换已被删除?可能与我的问题有关吗?

2 个答案:

答案 0 :(得分:2)

删除Toggle你可以使用布尔变量,或者只询问jQuery是否可见

$('#btnFilter').on('click', function () {
    if ($("#filterDiv").is(":visible")) {
        $("#filterDiv").hide();
    } else {
        $("#filterDiv").show();
    }
});

答案 1 :(得分:0)

toggle(function,function...)被删除,创建一个bool并使用if语句

var toggle = false;
$('#btnFilter').on('click', function () {
    toggle = !toggle;
    if (toggle) {} else {}
});

切换(功能,功能......)删除,因为:

  

这是“单击一个元素来运行指定的函数”   .toggle()的签名。它不应该与“改变”相混淆   不推荐使用的.toggle()元素的可见性   前者被删除,以减少混乱和提高潜力   用于库中的模块化。可以使用jQuery Migrate插件   恢复功能。