javascript - jquery:将参数和初始函数传递给jquery原型(prototype)

标签 javascript jquery parameters chaining

我是这个网站的新手,也是 jQuery 的新手。

我想使用所谓的 bootstrap material datetime picker ,它允许您将插件分配给 HTML 输入元素。当此元素发生 onfocus 事件时,选择器将被唤醒并以覆盖模式显示在屏幕上。从选择器中选择日期后,选择器会消失,并且 HTML 变量的值将设置为所选值。

我希望选择器在不与 HTML 输入变量交互的情况下显示;此外,用户应该能够在不使用选择器的情况下更改 HTML 输入元素的值。我的问题是我无法将初始参数和函数传递给插件。

通常插件的使用方式是这样的:

$('#_Date_5').bootstrapMaterialDatePicker();  // this works

参数可以这样传递

$('#_Date_5').bootstrapMaterialDatePicker(
    {
        format: '<format>',
        shortTime: false,
        minDate: null,
        maxDate: null,
        currentDate: null,
        date: true,
        time: true,
        clearButton: true,
        nowButton: true,
        switchOnClick: false,
        triggerEvent: 'focus'
    } 
);

如果我想在插件初始化时调用一个函数(假设_fireCalendar()),那么我可以使用以下内容:

$('#_Date_5').bootstrapMaterialDatePicker('_fireCalendar');

现在,我使用临时 HTML 变量向选取器提供所需的初始日期时间值,并将选取器绑定(bind)到该临时变量。单击可编辑值右侧的图标符号后,应显示选择器。现在,用户可以在不使用选择器的情况下编辑值,或者决定使用选择器。

现在我的问题 - 是否可以在初始化时同时传递一组参数回调函数

我已设法通过在插件的构造函数中调用 _fireCalender() 来实现此目的,但是我希望能够在不修改插件本身的情况下实现此目的。

感谢您的帮助!

最佳答案

好吧 - 这是我的解决方案 - 令人讨厌(需要更改插件代码) - 但有效:

  1. 向插件的构造函数添加了新参数 this.params.beforeHiding。参数beforeHiding初始设置为null,可以设置为函数
  2. 在 hide() 方法的最后调用了 this.params.beforeHiding 传递的函数

在构造函数中

this.params = {beforeHiding:null, <original parameters>}

在方法 hide() 中

if ( this.params.beforeHiding !== null ) this.params.beforeHiding();

此代码将使用新功能:

var date_interim = document.getElementById('var_interim');
var date_original = document.getElementById('_Date_5');

date_interim.value = date_original.value;

$('#var_interim').bootstrapMaterialDatePicker(
{
format: '<format>',
shortTime: false,
date: true,
time: false,
clearButton: true,
nowButton: true,
switchOnClick: false,
triggerEvent: 'focus',
beforeHiding: function()
{
var date_interim = document.getElementById('var_interim');
var date_original = document.getElementById('_Date_5');
date_original.value = date_interim.value;
}
}
);

// display the picker by focussing it
date_interim.focus();

该代码绑定(bind)到 HTML 图像标签的单击事件并使用临时变量,该变量是一个 HTML 输入字段,用户可以手动编辑原始值或从选择器中选择一个值。聚焦临时变量会在屏幕上显示选择器。

关于javascript - jquery:将参数和初始函数传递给jquery原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40008766/

相关文章:

javascript - Angular 登录表单验证

php - 单击刷新 div 中的页面

c# - 将带参数的函数传递给不期望任何参数的委托(delegate)

python - 使用 request() 发布数据时出现异常 "A JSONObject text must begin with ' {' at character 0 of"

javascript - 使用 javascript 通过单选按钮的值检查它

javascript - 如何在新选项卡中打开新页面并重定向当前页面

javascript - 如何使用 jQuery 禁用粘贴 (Ctrl+V)?

javascript - 关闭并重新打开特定单词周围的标签

javascript - jQuery 自动完成 - 在不更改请求的情况下获取响应?

MySQL - 从选择内部使用条件