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()实现这一点,但是我希望能够做到这一点,而无需修改插件本身。

感谢您的帮助!

没关系 - 这里是我的解决方案 - 讨厌(需要改变插件代码) - 但工作:

  1. 增加了新的参数this.params.beforeHiding到插件的构造函数。参数beforeHiding最初设置为空,并且可以设置为函数
  2. 调用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输入字段,用户既可以手动编辑原始值,也可以从选取器中选择一个值。集中临时变量显示屏幕上的选取器。