我有一个网格过滤器,正在显示/隐藏切换,如下所示:
$("#btnFilter").toggle(function () {
// show filter
}, function () {
// hide filter
});
网格是交互式的,双击它将使用新的动态HTML覆盖现有网格。我不希望在与网格交互时显示我的过滤器,因此在我的网格onClick()事件中,我将使用与切换函数中相同的// hide filter
代码。
唯一的问题是,因为我绕过了.toggle()事件,所以当我试图手动隐藏它时,我需要点击#btnFilter两次(这是我不想要的)。
任何想法都会很棒!
我很欣赏答案,但逻辑并不是我真正关心的问题,任何想法为什么切换已被删除?可能与我的问题有关吗?
答案 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插件 恢复功能。