This is a pretty specific problem that I ran into, but I have no idea how to debug this, or even find out if this will even work in mobile browsers.
I have 2 pages (like in the SAME domain, so I have no problems with the cross-domain security policy), one of them is inside the iframe, inside the other. Since I need to catch clicks for both the parent and the child, I created a div that covers the iframe and then calls the click method on the child:
Here is the demo code I made:
Parent file:
<script> $(document).ready(function() { $("#floating_play_button").click(function() { alert("just clicked floating_play_button... will try to click iframe on click for link2"); $('#slider').contents().find("#link1").click(); }); }); </script> <div id="floating_play_button" style="cursor:pointer; left: 0px; top:0px; width:100%; height:395px; position:absolute; border:2px solid red;"></div> <iframe id="slider" src="slider_test.php" width="957" height="337" frameBorder="1" style="border:2px solid green;" ></iframe>
Page for children:
<script> $(document).ready(function() { $("#link1").click(function() { alert("#link1 clicked..."); }); }); </script> <div id="link1"> <a href="#">Link 1</a><br /> </div>
This works fine on all desktop browsers, but not on Chrome for Android (July 22, 2013 version), the default Android browser, iPad and iPhone.
On the child page, I tried both of these forms, but didn't work:
$(document).on('click', '#link1', function() { alert("on click activated for link1"); }); $("#link1").click(function() { alert("#link1 clicked..."); });
As an additional note, the selector is fine. I can do something like changing text attributes and the like using jQuery, and it works fine. I just can't trigger the click event.
Any hints or pointers?
Thanks!