2014-01-05 20 views
1

檢查了這一點:http://luis-almeida.github.io/filtrify/movies.htmljQuery的Filtrify插件 - 過濾器「或」,而不是「和」

如果讓我選擇Genre: ActionMain Actors: Aaron Eckhart,這表明他們的風格是行動的電影,也是他們的主要演員是艾倫·艾克哈特。 (在這種情況下:「黑暗騎士」)

直到現在,這一切都很好。但是,如果我選擇例如Genre: Action, Animation(它們都是),則它也只顯示一部電影,其符合條件的

我想要的是,如果我在一個「父」(流派等)中選擇多個值,它會做一個「或」條件,而不是「和」條件。

例如,如果我選擇Genre: actionMain Actors: Aaron Eckhart, Aaron Johnson它會顯示:

genre: action 
AND 
main actors: (Aaron Eckhart OR Aaron Johnson) 

(^它不是一個代碼...)

代碼:

$(function() { 
    $.filtrify("container", "placeHolder"); 
}); 
<ul id="container"> 
    <li data-genre="Drama, Sci-Fi, Thriller" data-main-actors="Harrison Ford, Rutger Hauer, Sean Young, Edward James Olmos" data-director="Ridley Scott"> ... Blade Runner ... </li> 
    <li data-genre="Action, Crime, Drama, Thriller" data-main-actors="Christian Bale, Michael Caine, Ken Watanabe, Liam Neeson" data-director="Christopher Nolan"> ... Batman Begins ... </li> 
    <li data-genre="Drama" data-main-actors="Mark Wahlberg, Julianne Moore, Burt Reynolds, Luis Guzmán" data-director="Paul Thomas Anderson"> ... Boogie Nights ... </li> 
    <li data-genre="Action, Adventure" data-main-actors="Harrison Ford, Sean Connery, Alison Doody, Denholm Elliott" data-director="Steven Spielberg"> ... Indiana Jones and the Last Crusade ... </li> 
    <li data-genre="Crime, Mystery, Thriller" data-main-actors="Harvey Keitel, Tim Roth, Michael Madsen, Chris Penn" data-director="Quentin Tarantino"> ... Reservoir Dogs ... </li> 
    ... 
</ul> 

謝謝, 和對不起我的英語

+0

@FrédéricHamidi這是什麼關係?這是不同的 – HtmHell

+0

相關代碼在哪裏?編輯:哈,好吧filtrify是一個插件 –

+0

@Ariel,確實是你的編輯後更清晰的區別。道歉,收起投票。 –

回答

1

其實原因很簡單: 在filtrify.js的Filtrify.prototype.filter功能,取代:

if (!this._query[f].length || c >= this._query[f].length) { 

有:

if (!this._query[f].length || c >= 1) { 

這將影響字段標籤過濾的OR條件,但它節省了字段之間的AND條件。

然後爲了保持字段數不變(如果保持原樣,用戶會感到困惑,因爲它不再是一個AND條件),在filtrify.js的Filtrify.prototype.updateFields函數中,更改:

if(match && tags) { 

if(tags) { 

如果你還試圖在一次顯示一個面板,這thread有解決方案......

希望這有助於...

相關問題