我注意到了
$("body").on("click", "#id", function(event) {...
时,无法在iOS上运行
$("#id").on("click", function(event) {...
完美无缺。相同的站点,相同的jQuery(最新),相同的DOM。我不能使用后者,因为#id是动态添加的。
想法?
答案 0 :(得分:14)
尝试以下一次:
$(document).on("click touchstart", "#id", function(event) {...
答案 1 :(得分:1)
如果您想添加点击而不使用触摸事件,您可以执行此操作(尽管它涉及代理嗅探):
// Check if it is iOS
var isiOS = (navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false);
if(isiOS === true) {
// Store -webkit-tap-highlight-color as this gets set to rgba(0, 0, 0, 0) in the next part of the code
var tempCSS = $('a').css('-webkit-tap-highlight-color');
$('body').css('cursor', 'pointer') // Make iOS honour the click event on body
.css('-webkit-tap-highlight-color', 'rgba(0, 0, 0, 0)'); // Stops content flashing when body is clicked
// Re-apply cached CSS
$('a').css('-webkit-tap-highlight-color', tempCSS);
}
在http://www.texelate.co.uk/blog/post/124-add-a-click-event-to-html-or-body-on-ios-using-jquery/
了解详情