重用jQuery小部件

时间:2010-04-10 07:50:44

标签: jquery jquery-ui

我正在寻找一种最有效的方法来重复使用不同选择器的小部件...例如,如果我有:

$("#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中找不到它:)谢谢!

1 个答案:

答案 0 :(得分:2)

您可以通过编写插件来完成您想要的操作。但是,这里有一个简单的函数(实际上,这是代码重复的标准解决方案):

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

setDatepicker("#selector1");
setDatepicker("#new-selector2");
相关问题