2014-01-22 25 views
0

我試圖使用jquery「on」方法來偵聽單擊事件上可能還沒有在頁面上的元素。 (在我的例子中,元素是在頁),但它在iOS7jquery使用.on()當元素不存在現在工作在ios7

不工作

測試工作:
鉻32.0.1700.72米
FF 26
Android 4.3的三星S3

不工作我運行ios7 iPhone 4S

的jsfiddle:http://jsfiddle.net/MPYKX/

HTML:

<div id="clickable">Click me</div> 

JS:

var onClick = function() { 
    alert("ok"); 
}; 

$(document).ready(function() { 
    $(document).on("click", "#clickable", onClick); 
}); 

任何想法?

+0

重複http://stackoverflow.com/questions/3705937/document-click-not-working-correctly-on-iphone-jquery –

+0

這可能是值得探討'ontouch'事件..如你不'點擊「觸摸設備上的元素 –

回答

3

單擊事件在iOS上不起作用,您必須使用touchstart,touchmovetouchend事件來確定用戶是否輕敲屏幕。

+0

謝謝, 但是我有點困惑,使用點擊事件的另一種方式確實有效: 'code' $(」clickable「)。click(onClick)''代碼' 既可以在桌面,android和ios7上工作。 ,但增加了touchend: 'code' $(document).on(「click touchend」,「#clickable」,onClick); 'code' 兩次觸發事件。 任何想法? –

0
app.event = (ua.match(/iPad|Android/i)) ? "touchstart" : "click"; 
$(element).on(app.event, function(e) { 
    e.stopPropagation();