0

我有一个用于显示/隐藏的网格的过滤器,如下所示:

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

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

唯一的问题是,由于我绕过了 .toggle() 事件,因此在尝试手动隐藏它时需要单击 #btnFilter 两次(这是我不想要的)。

任何想法都会很棒!

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

4

2 回答 2

2

Toggle 已删除,您可以使用布尔变量或询问 jQuery 是否可见

$('#btnFilter').on('click', function () {
    if ($("#filterDiv").is(":visible")) {
        $("#filterDiv").hide();
    } else {
        $("#filterDiv").show();
    }
});
于 2013-10-14T13:18:41.883 回答
0

toggle(function,function...) is removed, create a bool and use an if statement

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

toggle(function,function...) remove because:

This is the "click an element to run the specified functions" signature of .toggle(). It should not be confused with the "change the visibility of an element" of .toggle() which is not deprecated. The former is being removed to reduce confusion and improve the potential for modularity in the library. The jQuery Migrate plugin can be used to restore the functionality.

于 2013-10-14T13:17:33.317 回答