我正在寻找一种最有效的方法来重复使用不同选择器的小部件...例如,如果我有:
$("#selector1").datepicker({
beforeShow: function(var1,var2) {
// do stuff
},
onClose: function(var1,var2) {
// do stuff
},
onSelect: function(var1,var2) {
// do stuff
}
})
后来我希望将具有相同功能的同一个窗口小部件分配给其他选择器,这些选择器在加载时是未知的。因为它不是关于选择更好的选择器而我想避免:
$("#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开发人员都必须明白,很明显我在docs中找不到它:)谢谢!
答案 0 :(得分:2)
您可以通过编写插件来完成您想要的操作。但是,这里有一个简单的函数(实际上,这是代码重复的标准解决方案):
function setDatepicker(selector){
$(selector).datepicker({/* ... */});
}
setDatepicker("#selector1");
setDatepicker("#new-selector2");