2013-03-22 39 views
2

我在這裏錯過了什麼?我需要點擊回調來調用paginate.something.apply(paginate),這取決於它是上一個還是下一個。

prevOrNext = ["previous", "next"], 
    pageSet = { 
     1: function(){ 
      paginate.previousPage.apply(paginate) 
     }, 
     2: function(){ 
      paginate.nextPage.apply(paginate) 
     } 
    }; 

$.each(prevOrNext, function(n, v) { 
    list[index++] = createLi(v).on('click', function(e) { 
     e.preventDefault(); 
     pageSet[n]; 
    }); 
}); 
+2

'paginate [v +「Page」]。apply(paginate);'? – 2013-03-22 16:33:19

+0

就是這樣!儘可能把它放在答案中。 – 2013-03-22 16:35:21

回答

3

使用可變字符串來訪問屬性,你可以用方括號語法:

var f = paginate[v + "Page"].apply(paginate); 

調用一個函數涉及包含逗號分隔的列表附加括號的參數,但很明顯你知道你的代碼。

+0

謝謝,我真的需要一雙新鮮的眼睛。 – 2013-03-22 16:37:35

4

你實際上並沒有調用函數。你可能打算這樣做:

pageSet[n]();