我将Mobiscroll称为如下:
$(joInputField).scroller({
width: 60,
wheels: wheels, // wheels variable has been defined above
headerText: false, // false for production!
onSelect: function(){ // event fired by BOTH set and cancel
var stDate = '';
var rawDate = $(joInputField).scroller('getValue');
// a bunch more code
Mobiscroll的这种设置在Firefox 17和IE9中都能正常工作。但是,它在Chrome 23中彻底失败。在Chrome中,当我点击输入字段以弹出Mobiscroller时,我甚至会刷新页面。
点击事件按原样附加,因此我认为HTML页面中的内容不会影响Chrome。另外,我在控制台中没有收到任何错误。
我刚刚将Mobiscroll从1.5升级到2.3.1这没有任何区别。在Chrome中仍然失败,并且在FF& amp; IE。
任何人都有预感?
答案 0 :(得分:1)
好的,终于有时间搞清楚了。
这是我的输入元素的配置方式:
<input id="mobiScroll" class="mobiscroll scroller" type="image" readonly="" value="5 07 05 19 5 5" name="mobiDick" src="<?php echo $options['assetsBase'] ?>/img/calendar-icon-40px2.png">
事实证明,在此配置中,如果图像覆盖输入元素,则Chrome不会触发焦点事件。 Mobiscroll依赖于焦点事件。
最简单的解决方案(即耗时最少)是这种解决方法,单击输入元素会在所述元素上引发焦点事件,从而启动Mobiscroll。
// work around a Chrome quirk where focus event is not raised on input element:
joInputField.click(function() {
joInputField.trigger('focus');
});
希望这能帮到某个人,不管怎样......