0

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 と IE ではうまく機能します。

誰にも予感がありますか?

4

1 に答える 1

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 はその focus-event に依存します。

最も単純な解決策 (つまり、最も時間がかからない) は、この回避策でした。入力要素をクリックすると、その要素でフォーカス イベントが発生し、Mobiscroll が起動します。

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

これが誰か、どこかで役立つことを願っています...

于 2013-03-13T14:43:54.670 に答える