javascript - 如何在 JavaScript 中获取 "extended"原型(prototype)属性或函数? jQuery 插件中的常见做法

标签 javascript oop object jquery-plugins properties

我是 JavaScript 中 OOP 的初学者。我尝试了一些东西,但很明显我不理解代码。 这是我的问题: 我有一个用于显示日历的插件 - glDataPicker。它在输入标签上初始化,如下所示:

$('#my_input_id').glDatePicker();//可以传递参数

  1. 所以我假设将脚本部署到我的网站后,DOM 中的 glDatePicker.min.js 输入获得了新方法 glDatePicker?我在这儿吗?

然后它定义了 hideshow 方法:

// 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/

相关文章:

javascript - Protractor : directConnect 不支持 browserName 'chrome'

objective-c - 我应该总是在 Objective-C 中使用访问器作为实例变量吗?

javascript - 为什么我的 setInterval 函数在我的对象中不起作用?

JavaScript:返回对象的多行箭头函数

javascript - 如何将数组对象保存到 Chrome 本地存储中

javascript - 打印数据表中的所有数据

javascript - 测试表单数据并返回单个错误消息(Javascript)

javascript - 如何使用 YouTube iframe 获得更精确的当前、视频和开始时间?

C#多态——从DLL文件加载类

java - 您能否重写抽象父类(super class)中的方法,并将其在子类中定义为 Java 中的抽象方法?