2011-08-30 87 views
1

我有接受過渡名作爲參數,並將其傳遞到jquery.mobile改變頁面的JavaScript方法:如何檢查過渡名稱是否在jquery.mobile中有效?

$.mobile.changePage(renderedPage, { transition: transition, reverse: reverse }); 

現在,我需要檢查,如果傳遞給我的方法轉換名稱是一個有效的過渡。 (這是因爲無效的轉換名稱會導致.changePage()方法中斷)

我瀏覽jquery.mobile的源代碼,但無法找到包含所有轉換名稱或轉換處理程序的集合。

任何人都有這樣的詭計嗎?

回答

1

在jquery mobile中,只有6個轉換可用。您可以確保給定的轉換處於可用轉換陣列中。 http://jquerymobile.com/demos/1.0a4.1/docs/pages/docs-transitions.html

var transitionArr = ["slide","slideup","slidedown","pop","fade","flip"]; 
$.mobile.changePage(renderedPage, { 
    transition: $.inArray(transition,transitionArr) == -1 ? transition : "slide", 
    reverse:reverse 
}); 

但是,我無法找到,在這我們可以用它來動態地構建這種陣列的方式直接引用這些轉變的核心數組或對象。

+0

+1爲$ .inArray,但爲什麼你在transitionArr中查找「reverse」?這只是一個布爾值。 –

+0

代碼中的另一個問題是:$ .inArray()返回數組中元素的索引,所以當數組中不存在轉換時滿足條件(即$ .inArray()返回-1)。 –

+0

有關反向檢查,我不做任何發展的jQuery手機,並認爲是錯誤的。固定。至於返回-1的$ .inArray,-1是一個false-y值,所以如果它出現爲-1,它將默認爲「slide」。如果你想要更精確的檢查,你可以使用!== -1 –