Skip to content

onClick broken on iOS. #134

Closed
Closed
@leebyron

Description

@leebyron
Contributor

iOS Safari really doesn't want you clicking anything that's not an <a> tag. This is a known issue: http://stackoverflow.com/questions/5421659/html-label-command-doesnt-work-in-iphone-browser/6472181#6472181

The way you fix this is by putting an empty "onclick" attribute on nodes you wish to emit click events. Yep.

So presumably:

div({onClick: function(){alert('clicked');}}, 'click me');

should emit:

<div onclick>click me</div>

on iOS. Ensuring that the click event is actually reachable from an iOS device.

As the stack overflow link points out, this is also an issue for <label> elements associated with <input> elements. In order to behave as a clickable label, they must also include an empty "onclick" attribute.

label(null, input({type: 'checkbox'}), check me);
<label onclick><input type="checkbox> check me</label>

Activity

yungsters

yungsters commented on Jun 28, 2013

@yungsters
Contributor

Is this only an issue with iOS4 and below? Can we just generate markup for every node with onclick="" on the affected browsers?

leebyron

leebyron commented on Jun 28, 2013

@leebyron
ContributorAuthor

I think it affects modern iOS browsers as well.

leebyron

leebyron commented on Jun 28, 2013

@leebyron
ContributorAuthor

style="cursor:pointer" also fixes this :)

vjeux

vjeux commented on Jun 28, 2013

@vjeux
Contributor

Does it only happens for onClick or also for onTouchStart, onDblClick ...?

Does attaching an onClick event listener to the dom node fixes the issue?

Christopher "vjeux" Chedeau
Facebook Engineer
http://blog.vjeux.com/

On Jun 27, 2013, at 10:45 PM, Lee Byron notifications@github.com wrote:

style="cursor:pointer" also fixes this :)


Reply to this email directly or view it on GitHub.

rboyce

rboyce commented on Jun 28, 2013

@rboyce

* {cursor: pointer;} is the least offensive way to do this, IMO

tomocchino

tomocchino commented on Aug 14, 2013

@tomocchino
Contributor

I think this is fixed now, right @zpao @yungsters?

ewendel

ewendel commented on May 15, 2014

@ewendel

Still not fixed, I just spent an hour trying to figure out why this wasnt working..

sophiebits

sophiebits commented on May 15, 2014

@sophiebits
Collaborator

Sorry about that -- we have #1169 open now.

added a commit that references this issue on May 13, 2015

7 remaining items

uzarubin

uzarubin commented on Oct 13, 2015

@uzarubin

We are currently having this issue only on iOS 9. The workarounds work for other versions of iOS, just not the most recent one. Is anyone else experiencing this?

sophiebits

sophiebits commented on Oct 13, 2015

@sophiebits
Collaborator

@uzarubin Haven't heard of this. I just tested with http://react.jsbin.com/vovuzexiza/edit?html,js (http://react.jsbin.com/vovuzexiza) and it seems to work fine.

melbayad

melbayad commented on Oct 14, 2015

@melbayad

I'm currently using React v0.14.0 and still have the same issue (event click not firing) on Safari v8.0.6 and IE. I've added cursor:pointer but with no luck. can you please help me to make it work ?

sophiebits

sophiebits commented on Oct 14, 2015

@sophiebits
Collaborator

This issue has been fixed. If you're seeing the wrong behavior from React still, please open a new issue with a minimal repro case.

added a commit that references this issue on Oct 30, 2015
tiaaaa123

tiaaaa123 commented on Sep 21, 2016

@tiaaaa123

react: 15.1.0 Still not working. I have the cursor: pointer as you can see. I tried onTouchStart, onTouchTap and onClick but none is happening.

alert('hi')} onTouchTap={() => alert('hi')} onClick={() => alert('hi')} style={{ padding: '16px', color: 'black', fontSize: '25px', cursor: 'pointer' }}> Click me!

When I'm on my website on an IPad and and my laptop the click on the IPad does nothing on the IPad, but it does on PC! The even seems to be triggered, but nothing is displayed on IPad....

stresslimit

stresslimit commented on Feb 11, 2017

@stresslimit

I love that this was still relevant to me today, thank you internet archives!

locked and limited conversation to collaborators on Feb 11, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @rboyce@sophiebits@zpao@tomocchino@leebyron

        Issue actions

          onClick broken on iOS. · Issue #134 · facebook/react