如何使我的"点击"功能适用于iOS

wil*_*fun 18 jquery ios

我有一套Div作为按钮.这些按钮有一个简单的jquery click()函数,可以在除iOS之外的所有浏览器中使用.

例如:

<div class="button">click me</div>
Run Code Online (Sandbox Code Playgroud)

$('.button').click(function(){

   alert('hi');

});
Run Code Online (Sandbox Code Playgroud)

我不确定为什么这在iOS上不起作用 - 显然iOS中没有"点击".

不幸的是我自己没有iphone设备来测试这个,但是我收到了很多客户的抱怨,他们希望点击这些东西并且没有任何事情发生.

让这个工作的关键是什么?

Rav*_*dag 35

单击 ":表示在同一元素上发生mousedown和mouseup事件或键盘激活元素时.

来自Jquery Bug,有解决方法,只需添加"cursor: pointer"到元素的CSS,click事件将按预期工作.你甚至可以看到这个Jquery点击Ios寻求帮助

  • Android使用它的主动性并将"点击"视为触摸是没有问题的.iOS是新的IE (16认同)

Mar*_*zio 6

实际上,接受的答案对我不起作用.我尝试使用"cursor:pointer",onclick ="",甚至将元素转换为锚标记.

我做的工作是绑定click事件的touchstart事件.为了使它适用于所有平台,我不得不像这样丑陋的欺骗:

var ua = navigator.userAgent,
event = (ua.match(/iPad/i) || ua.match(/iPhone/)) ? "touchstart" : "click";

jQuery("body").on(event, '.clickable_element', function(e) {
    // do something here
});
Run Code Online (Sandbox Code Playgroud)

  • 完全为我工作!尽管没有使用jQuery(“ body”)`重写了它,并使用了不太混乱的var名称代替了'event',但是我想后者只是为了阐明目的。 (2认同)