jquery:传递参数和初始函数到jquery原型
问题描述:
我是这个网站的新手,也是jQuery的新手。jquery:传递参数和初始函数到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');
现在我正在使用一个inte rim HTML变量将所需的初始日期时间值提供给选取器,并将选取器绑定到此临时变量。点击可编辑值右侧的图标后,应显示选择器。现在,用户可以在不使用选取器的情况下编辑该值,也可以选择使用选取器。
现在我的问题 - 是否有可能通过都一组参数和在初始化一个回调函数
我已成功通过插件的构造函数中调用_fireCalender()
实现这一点,但是我希望能够做到这一点,而无需修改插件本身。
感谢您的帮助!
答
没关系 - 这里是我的解决方案 - 讨厌(需要改变插件代码) - 但工作:
- 增加了新的参数this.params.beforeHiding到插件的构造函数。参数beforeHiding最初设置为空,并且可以设置为函数
- 调用this.params传递的函数。beforeHiding在方法隐藏()
this.params = {beforeHiding:null, <original parameters>}
在该方法中隐藏
()
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();
代码绑定到他单击HTML ima事件ge标签,并使用临时变量,这是一个HTML输入字段,用户既可以手动编辑原始值,也可以从选取器中选择一个值。集中临时变量显示屏幕上的选取器。