我正在使用wickedpicker并且有一个包含2个时间字段的页面。
当按下按钮时,我需要将每个字段中的时间分别更新到另一个字段。
我尝试的所有内容都不起作用,我认为这是因为脚本已经绑定(不确定这是否是正确的术语)到输入元素。
所以我的问题是可以加载和绑定脚本,卸载然后重新应用不同的参数吗?
这是我目前的代码:
<script>
$(document).ready(function() {
$(".timepicker").wickedpicker({twentyFour: true});
$("#btn").click(function(e) {
alert ('click')
$("#timeTwo").wickedpicker({twentyFour: true, now: "17:35"});
})
});
</script>
<body>
<button id='btn' class='formBtn'>CHANGE</button>
<input type='text' class='timepicker' id='timeOne' name='timeOne' value='' >
<input type='text' class='timepicker' id='timeTwo' name='timeTwo' value='' >
</body>
我正在加载timepicker,因为我需要能够立即使用它,但我还需要能够通过按钮点击更新时间。
我已尝试在timeTwo
中设置默认值,该值会被timepicker覆盖。我使用JQuery来设置timeTwo的值,输入显示正确的值,但是timepicker现在显示时间,而不是字段显示的时间。
有什么想法吗? 感谢
更新 删除和读取元素有效。
$("#btn").click(function(e) {
console.log ('click')
var test = $("#timeTwo").remove();
$('body').append( test ); // later
$("#timeTwo").wickedpicker({twentyFour: true, now: '15:34'});
});
但我如何确保将其加载回同一位置? 感谢
答案 0 :(得分:1)
此处的wickedpicker:https://ericjgagnon.github.io/wickedpicker/没有设置内部使用时间的方法。因为它检测到元素是否已经有一个邪恶的拾取器,所以你不能简单地再次应用它,正如你已经注意到的那样。 最干净的解决方案是扩展wickedpicker所需的功能。另一种解决方法可能是删除输入,然后重新创建它。
编辑:我给你做了一个小片段,以证明取代者的更换。它不是一个很好的解决方案,因为它会破坏/匹配datepicker元素的其他事件或引用。你必须小心那些。
扩展原始的邪恶拾取器也不会很难,但我认为超出了这个问题。
PS:请忽略css部分。我不得不内联wickedpicker css以使其工作(减去正确的字体)。你应该只需要javascript部分。
$(document).ready(function() {
$(".timepicker").wickedpicker({
twentyFour: true
});
$("#btn").click(function(e) {
$("#timeTwo").replaceWith("<input type='text' class='timepicker' id='timeTwo' name='timeTwo' value='' />");
$("#timeTwo").wickedpicker({
twentyFour: true,
now: "17:35"
});
})
});
&#13;
.wickedpicker {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
box-shadow: 0 0 0 1px rgba(14, 41, 57, .12), 0 2px 5px rgba(14, 41, 57, .44), inset 0 -1px 2px rgba(14, 41, 57, .15);
background: #fefefe;
margin: 0 auto;
border-radius: .1px;
width: 270px;
height: 130px;
font-size: 14px;
display: none
}
.wickedpicker__title {
background-image: -webkit-linear-gradient(top, #fff 0, #f2f2f2 100%);
position: relative;
background: #f2f2f2;
margin: 0 auto;
border-bottom: 1px solid #e5e5e5;
padding: 12px 11px 10px 15px;
color: #4C4C4C;
font-size: inherit
}
.wickedpicker__close {
-webkit-transform: translateY(-25%);
-moz-transform: translateY(-25%);
-ms-transform: translateY(-25%);
-o-transform: translateY(-25%);
transform: translateY(-25%);
position: absolute;
top: 25%;
right: 10px;
color: #34495e;
cursor: pointer
}
.wickedpicker__close:before {
content: '\00d7'
}
.wickedpicker__controls {
padding: 10px 0;
line-height: normal;
margin: 0
}
.wickedpicker__controls__control,
.wickedpicker__controls__control--separator {
vertical-align: middle;
display: inline-block;
font-size: inherit;
margin: 0 auto;
width: 35px;
letter-spacing: 1.3px
}
.wickedpicker__controls__control-down,
.wickedpicker__controls__control-up {
color: #34495e;
position: relative;
display: block;
margin: 3px auto;
font-size: 18px;
cursor: pointer
}
.wickedpicker__controls__control-up:before {
content: '\e800'
}
.wickedpicker__controls__control-down:after {
content: '\e801'
}
.wickedpicker__controls__control--separator {
width: 5px
}
.text-center,
.wickedpicker__controls,
.wickedpicker__controls__control,
.wickedpicker__controls__control--separator,
.wickedpicker__controls__control-down,
.wickedpicker__controls__control-up,
.wickedpicker__title {
text-align: center
}
.hover-state {
color: #3498db
}
@font-face{font-family:fontello;src:url(../fonts/fontello.eot?52602240);src:url(../fonts/fontello.eot?52602240#iefix) format("embedded-opentype"),
url(../fonts/fontello.woff?52602240) format("woff"),
url(../fonts/fontello.ttf?52602240) format("truetype"),
url(../fonts/fontello.svg?52602240#fontello) format("svg");
font-weight:400;
font-style:normal
}
.fontello-after:after,
.fontello:before,
.wickedpicker__controls__control-down:after,
.wickedpicker__controls__control-up:before {
font-family: fontello;
font-style: normal;
font-weight: 400;
speak: none;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
font-variant: normal;
text-transform: none;
line-height: 1em;
margin-left: .2em;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale
}
.clearable-picker {
position: relative;
display: inline-block
}
.clearable-picker>.hasWickedpicker {
padding-right: 1em
}
.clearable-picker>.hasWickedpicker::-ms-clear {
display: none
}
.clearable-picker>[data-clear-picker] {
position: absolute;
top: 50%;
right: 0;
transform: translateY(-50%);
font-weight: 700;
font-size: .8em;
padding: 0 .3em .2em;
line-height: 1;
color: #bababa;
cursor: pointer
}
.clearable-picker>[data-clear-picker]:hover {
color: #a1a1a1
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://raw.githubusercontent.com/ericjgagnon/wickedpicker/master/dist/wickedpicker.min.js"></script>
<button id='btn' class='formBtn'>CHANGE</button>
<input type='text' class='timepicker' id='timeOne' name='timeOne' value='' />
<input type='text' class='timepicker' id='timeTwo' name='timeTwo' value='' />
&#13;
答案 1 :(得分:0)
您可以按照下面的说明进行操作,您可以在初始化后动态更改选项..请参阅document
$(document).ready(function() {
$(".timepicker").wickedpicker({twentyFour: true});
$("#btn").click(function(e) {
alert ('click')
$("#timeTwo").wickedpicker('twentyFour', true);
$("#timeTwo").wickedpicker('now', "17:35");
});
});