2012-12-18 58 views
0

我打电话Mobiscroll如下:Mobiscroll在Chrome中出现故障,工作正常FF和IE

$(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的这种设置工作正常,在这两个火狐17和IE9。但是,它在Chrome 23中完全失败。在Chrome中,当我点击输入字段以弹出Mobiscroller时,我甚至会刷新页面。

点击事件会附加到应该的位置,所以我认为这不是我的HTML页面中令Chrome浏览器不满意的事情。另外,我没有在控制台中发现任何错误。

我刚刚将Mobiscroll从1.5升级到2.3.1,这没有什么区别。在Chrome中仍然失败,并且像FF & IE中的魅力一样工作。

任何人都有预感吗?

+0

这是不足够的信息。请附上所有代码或创建一个演示问题的jsfiddle。 – dioslaska

回答

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"> 

事实证明,在这种配置中,具有图像覆盖的输入元素,镀铬不火的焦点事件。而Mobiscroll依赖于该焦点事件。

最简单的解决方案(即最不耗时)是这种解决方法,点击输入元素会在所述元素上引发焦点事件,从而启动Mobiscroll。

// work around a Chrome quirk where focus event is not raised on input element: 
joInputField.click(function() { 
     joInputField.trigger('focus');      
}); 

希望这有助于一个人,在路上的某个地方......

相关问题