2012-09-24 59 views
1

有沒有一種方法可以預過濾此頁面以單獨顯示「應用程序」。Prefilter Quicksand Page - jQuery

像,如果我訪問http://razorjack.net/quicksand/demos/one-set-clone.html#app它只會顯示'應用程序'。這可能嗎?

身邊的一些人說,谷歌搜索,這將有助於:

if(window.location.hash) { 
       // run code here to filter the quicksand set 
       var $filteredData = $data.find('li[data-type=' + window.location.hash + ']'); 
       $applications.quicksand($filteredData, { 
        duration: 800 
       }); 
      } 

,但我不知道在哪裏使用它。

非常感謝這裏的任何幫助 - 真正卡住了。

+0

如果您嘗試在頁面加載時檢測到散列值,則此代碼只需放在$(document).ready(function(){'中,條件是該else的else聲明做'普通流沙渲染'。這就是你需要的全部。 – Ohgodwhy

+0

感謝你的回覆 - 和很酷的用戶名;-) 所以,我基本上看看是否存在一個散列,如果是的話,只顯示那些條目與該類名稱。你能幫我嗎? – michaelmcgurk

回答

2
$(document).ready(function(){ 
    //on page load, we check to see if a hash value exists. 
    if(window.location.hash) { 
     // run code here to filter the quicksand set 
     var $filteredData = $data.find('li[data-type=' + window.location.hash + ']'); 
     $applications.quicksand($filteredData, { 
      duration: 800 
     }); 
    }else{ 
     // the page does not have a hash value. deliver normal content. 
     $applications.quicksand('Your Normal Data Here', { 
      duration: 800 
     }); 
    } 
}); 

此代碼僅在頁面準備好後運行。它檢查是否存在散列值。如果是這樣,它會將數據過濾到li元素的data type equal to the hash value。然後它準備流沙以相應地過濾數據。如果沒有散列值,我們通常加載快速散列。我不知道您對選擇器做了什麼,因此只需將'Your Normal Data Here'替換爲您使用的任何數據過濾器即可。

應當指出的是,按照本例中,他們希望你有一個<li>結構如下 - >

<li data-type="data1"> //stuff </li>

data1會是什麼期望的散列值過濾的目的。

+0

非常感謝 - 現在就試試這個快捷方式 - 並在一分鐘後回覆:) – michaelmcgurk

+0

我需要去掉window.location.hash的前面,如下所示:window.location.hash.substr(1)在我的代碼(無疑略有不同)tx非常! – ptim