2010-04-10 33 views
1

我正在寻找一种最有效的方式来重新使用具有不同选择的小部件例如,如果我有:重新使用jQuery的小部件

$("#selector1").datepicker({ 
beforeShow: function(var1,var2) { 
// do stuff 
}, 
onClose: function(var1,var2) { 
// do stuff 
}, 
onSelect: function(var1,var2) { 
// do stuff 
} 
}) 

后来我在找这个分配一个widget在加载时未知的其他选择器内部具有相同的功能。因为它不是关于如何选择一个更好的选择,我想避免:

$("#new-selector2").datepicker({ 
beforeShow: function(var1,var2) { 
// do stuff 
}, 
onClose: function(var1,var2) { 
// do stuff 
}, 
onSelect: function(var1,var2) { 
// do stuff 
} 
}) 

$("#new-selector3").datepicker({ 
beforeShow: function(var1,var2) { 
// do stuff 
}, 
onClose: function(var1,var2) { 
// do stuff 
}, 
onSelect: function(var1,var2) { 
// do stuff 
} 
}) 

什么会做这样的事情的最好方法:

var reusableDatepicker = datepicker({ 
beforeShow: function(var1,var2) { 
// do stuff 
}, 
onClose: function(var1,var2) { 
// do stuff 
}, 
onSelect: function(var1,var2) { 
// do stuff 
} 
}) 

$("#selector1").attach(reusableDatepicker); 
$("#new-selector2").attach(reusableDatepicker); 
$("#new-selector3").attach(reusableDatepicker); 

所有jQuery的开发者,我知道那一定是明显在那里,很明显,我无法在文档中找到它:)谢谢!

回答

2

你可以通过编写一个插件来完成你想要的。然而,简单的功能将在这里做(其实,这是重复代码的标准溶液):

function setDatepicker(selector){ 
    $(selector).datepicker({/* ... */}); 
} 

setDatepicker("#selector1"); 
setDatepicker("#new-selector2"); 
+0

不,选择是动态的,添加/创建加载 – Micor 2010-04-10 08:14:05

+0

好的页面经过的div一定要考虑写插件, 谢谢。 – Micor 2010-04-10 09:18:12