打开另一个时,如何关闭Filtrify面板?

时间:2013-01-09 10:42:02

标签: javascript css filtering

我目前正在使用Isotope集成的网站中美丽的Filtrify脚本(http://luis-almeida.github.com/filtrify/)。

在我的网站上,我有4个“类别”/小组用于搜索我的-field。当我打开第一个类别/面板并将鼠标悬停在下一个类别/面板上并打开它时,第一个仍然打开。使用CSS或Javascript,当将鼠标悬停在下一个类别/按钮上以打开另一个Filtrify面板时,是否可以关闭已打开的Filtrify面板?如果我打开它们,现在它仍然是开放的。例如,在这里打开“流派”,“主要演员”和“导演”:http://luis-almeida.github.com/filtrify/movies.html

真的很感谢你的帮助!谢谢你的建议!

1 个答案:

答案 0 :(得分:3)

我不太了解库,但您可以在打开另一个面板之前尝试关闭面板的兄弟姐妹。

该方法的第一个近似值可能是:

Filtrify.prototype.closeSiblingsPanel = function ( f ) {
    for(var item in this._menu){
        if(item !== f && this._menu[item].panel){
            this._menu[item].panel.addClass("ft-hidden");
            this._menu[item].label.removeClass("ft-opened");
        }
    }
};

您还必须修改click事件处理程序:

Filtrify.prototype.events = function ( f ) {
    //...
    this._menu[f].label.on("click", this._bind(function(event){
        this.openPanel( f );
        this.closeSiblingsPanel( f );
        this.bringToFront( f );
        event.stopPropagation();
    }, this) );
    //...
};
相关问题