我是 JavaScript 中 OOP 的初学者。我尝试了一些东西,但很明显我不理解代码。 这是我的问题: 我有一个用于显示日历的插件 - glDataPicker。它在输入标签上初始化,如下所示:
$('#my_input_id').glDatePicker();//可以传递参数
- 所以我假设将脚本部署到我的网站后,DOM 中的
glDatePicker.min.js
输入获得了新方法 glDatePicker?我在这儿吗?
然后它定义了 hide
和 show
方法:
// Public methods
glDatePicker.prototype =
{
show: function() {
// Hide others and show this calendar
$.each($('.gldp-el').not(this.el), function(i, o) {
if(o.length) { o.options.onHide(o.calendar) ; }
});
// Show this calendar
this.options.onShow(this.calendar);
},
hide: function() {
if(this.options && !this.options.showAlways) {
this.options.onHide(this.calendar);
}
},
所以我的问题是如何从插件代码外部调用“隐藏”方法? 我试过:
$('#my_input_id').glDatePicker().calendar.hide()
-> 无法读取未定义的属性“隐藏”(…)
等等,但我无法隐藏日历。我如何从全局上下文中获取此方法?
最佳答案
试试这个:
$('[gldp-el='+ $('#my_input_id').attr('gldp-id') +']').hide()
$('[gldp-el='+ $('#my_input_id').attr('gldp-id') +']').show()
关于javascript - 如何在 JavaScript 中获取 "extended"原型(prototype)属性或函数? jQuery 插件中的常见做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35805870/