Events do not propagate from a child element?
- by Legend
I was playing around with the Swipe jQuery plugin on my iPod Touch and Android devices. The following works:
<html>
<head>
    <script type="text/javascript" src="lib/jquery/jquery-1.3.2.js"></script>
    <script type="text/javascript" src="lib/plugins/jquery.swipe.js"></script>
    <script type="text/javascript">
        $(function() {
              $('body').swipe({
                 swipeLeft: function() { $('#container1').append("Swiped Left!"); },
                 swipeRight: function() { $('#container2').append("Swiped Right!");}
            });
        });
    </script>
    <style type="text/javascript">
        body {width: 300px; height: 300px; background: #000;}
    </style>
</head>
<body>
<div id="container1">
    This is container one
</div>
<div id="container2">
    This is container two
</div>    
</body>
</html>
But if I have something like this:
<html>
    <head>
        <script type="text/javascript" src="lib/jquery/jquery-1.3.2.js"></script>
        <script type="text/javascript" src="lib/plugins/jquery.swipe.js"></script>
        <script type="text/javascript">
            $(function() {
                  $('#wrapper').swipe({
                     swipeLeft: function() { $('#container1').append("Swiped Left!"); },
                     swipeRight: function() { $('#container2').append("Swiped Right!");}
                });
            });
        </script>
        <style type="text/javascript">
            body {width: 300px; height: 300px; background: #000;}
        </style>
    </head>
    <body>
    <div id="wrapper">
      <div id="container1">
        This is container one
      </div>
      <div id="container2">
        This is container two
      </div>    
   </div>
  </body>
  </html>
Notice the "wrapper" div around the containers. Now, when I swipe on the div element, I was expecting it to actually trigger the event. This works in iPod touch as expected but does not work on my Android device unless I randomly start swiping everywhere until I happen to swipe on that small wrapper div element itself. I am not sure how to explain this but hink of it as sending events to the wrapper div itself. Both use the WebKit engine. Can someone tell me if I am doing something wrong?