1

我有一个可以切换的过滤器。

当我单击所述区域时,它会正确切换过滤区域的大小。

我想要做的是也使用另一个按钮关闭它。

在另一种方法中将高度设置为 15 是可行的,但它假定切换状态未更改,因此您必须单击它几次才能循环以使其同步。

有什么方法可以告诉过滤器切换发生。而不是单独关闭它。

 $("#filtertoggle").toggle(function () {
                $("#filterarea").animate({ height: "200px" }, 400);
            },
            function () {
                $("#filterarea").animate({ height: "15px" }, 400);
            });

调用下面实际上只是一个未参数化的切换,所以它只会隐藏 filtertoggle。它不调用我创建的方法。

$("#goFilter").click(function () {
    $( ".filtertoggle" ).toggle();
}
4

2 回答 2

2

尝试这个:

$("<element to trigger>").trigger("click");

此外,实现您自己的切换机制非常容易 - 然后您将拥有无限的控制权。

于 2013-09-26T14:25:38.027 回答
2

使用此代码

var i = 0;
$("#goFilter").click(function () {
    var ht = (i++ % 2 == 0) ? 200 : 15;
    $("#filterarea").animate({
        height: ht + 'px'
    }, 400);
});

$("#filtertoggle").click();

http://api.jquery.com/category/deprecated/

http://api.jquery.com/toggle-event/

生成类似切换事件的功能

演示

.one()文档。

function handler1() {
    alert('First handler: ' + $(this).text());
    $(this).one("click", handler2);
}
function handler2() {
    alert('Second handler: ' + $(this).text());
    $(this).one("click", handler1);
}
$("div").one("click", handler1);

jQuery单击/切换两个功能

于 2013-09-26T14:29:29.977 回答