MaterializeCss 使用 dblclick 事件打开日期选择器模态
MaterializeCss Use dblclick event to open datepicker modal
我正在使用 materializecss,我的老板让我将日期选择器模式上的触发器从经典 'click' 更改为双击。
问题是,没有关于它的文档,并且可能是硬编码在对象中的。
有没有办法改变这种行为?
您可以创建两个输入元素并隐藏其中一个。下面我创建了 input1 作为日期选择器和 input2 作为标准文本输入。然后我隐藏了第一个并为第二个分配了一个事件侦听器 (ondblclick)。
这可能不是最好的解决方案,但很有效。
var datepicker = document.querySelector('#input1')
var input2 = document.querySelector('#input2')
var options = {
autoClose : true,
container : document.body,
onSelect : function (day) {
input2.value = day.toDateString(),
M.updateTextFields()
}
}
var instance = M.Datepicker.init(datepicker, options)
input2.ondblclick = function () {
instance.open()
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<div class="row">
<div class="input-field col s5 hide">
<input type="text" class="datepicker" id="input1">
</div>
<div id="div2" class="input-field col s5">
<input type="text" id="input2">
<label for="input2">Pick a date</label>
</div>
</div>
我正在使用 materializecss,我的老板让我将日期选择器模式上的触发器从经典 'click' 更改为双击。
问题是,没有关于它的文档,并且可能是硬编码在对象中的。
有没有办法改变这种行为?
您可以创建两个输入元素并隐藏其中一个。下面我创建了 input1 作为日期选择器和 input2 作为标准文本输入。然后我隐藏了第一个并为第二个分配了一个事件侦听器 (ondblclick)。
这可能不是最好的解决方案,但很有效。
var datepicker = document.querySelector('#input1')
var input2 = document.querySelector('#input2')
var options = {
autoClose : true,
container : document.body,
onSelect : function (day) {
input2.value = day.toDateString(),
M.updateTextFields()
}
}
var instance = M.Datepicker.init(datepicker, options)
input2.ondblclick = function () {
instance.open()
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<div class="row">
<div class="input-field col s5 hide">
<input type="text" class="datepicker" id="input1">
</div>
<div id="div2" class="input-field col s5">
<input type="text" id="input2">
<label for="input2">Pick a date</label>
</div>
</div>