2013-03-22 37 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]();