2013-11-26 61 views
0

我遇到了一個問題,它似乎只發生在HTML5應用的獨立模式中,我保存到我的iOS設備的主頁屏幕。iOS獨立HTML5應用「點擊」事件不會觸發動態注入輸入

通過獨立模式下,我指的是以下metatag一個HTML的Web應用程序:

<meta name="apple-mobile-web-app-capable" content="yes"> 

JavaScript的問題(寫在CoffeeScript中)如下:

$(-> 
    $(document).on('click', 'input', (e) -> 
    alert('click') 
) 

    $(document).on('focusout', 'input', (e) -> 
    alert('blur') 
) 
) 

這些委託事件處理程序來處理動態注入的元素。移動Safari中的alert()消息顯示正常。但是,當以獨立模式(即從首頁屏幕啓動)查看網絡應用程序時,事件不會觸發。

我使用jQuery v1.10.2,如果這是有幫助的。

回答

0

我遇到了類似的問題,其中動態創建的輸入沒有光標,或者當您第一次單擊/觸摸輸入時允許您鍵入它們。鍵盤出現了,頁面滾動顯示出輸入被選中,但實際上不是。輸入中的第二次觸摸/點擊將光標置於輸入中,並允許輸入文本。

我的解決方法是將touchend事件附加到該特定輸入,然後再次使用jQuery的focus()以編程方式將該輸入重點關注。我不得不使用touchend,因爲點擊事件不會在獨立模式下觸發。

下面是一段代碼,你將不得不原諒語法,我正在使用Backbone。這是我的輸入觸發方法。

clickedInput: function (e) { 

    if (window.navigator.standalone) { 

     $(e.currentTarget).focus(); 

    } 

} 
相關問題