jQuery mobile data-rel=“retour” lien causer de tort événements à feu

Ont un look à la test

Lorsque vous ouvrez le lien, pagebeforeshow pour page 1 est déclenché. Lorsque vous cliquez sur le lien pour accéder à page 2, pagebeforeshow pour page 2 est déclenché. Pour l'instant, donc bon.

Si vous utilisez ensuite le bouton de gauche (data-) pour revenir en arrière, à l'excès les événements sont déclenchés. À l'aide du bouton droit de la place (lien direct vers page 1) fait quoi je m'attends, à savoir, seulement pagebeforeshow pour page 1 obtient déclenché.

pagebeforeshow peut également être remplacé par pageshow, n'a pas d'importance. Ce qui se passe ici?

(Testé jusqu'-2-date de Chrome)

Source de référence:

<html>
  <head>
    <meta charset="utf-8">

    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.css" />
    <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.js"></script>

    <script>
      $('#test1').live('pagebeforeshow', function() {
          console.log("=== pagebeforeshow for #test1");
      });
      $('#test2').live('pagebeforeshow', function() {
          console.log("=== pagebeforeshow for #test2");
      });
    </script>
  </head>

  <body>
    <div data-role="page" id="test1">

      <div data-role="header" align="center">
        <p>Page 1.</p>
      </div><!-- /header -->

      <div data-role="content">
        <p><a href="#test2">Go to page 2.</a></p>
      </div><!-- /content -->

    </div><!-- /page -->

    <div data-role="page" id="test2">

      <div data-role="header" align="center">
        <a href="/" data-icon="back" data-rel="back">Back</a>
        <p>Page 2.</p>
        <a href="data-rel-back.html" data-icon="back">Go directly to page 1</a>
      </div><!-- /header -->

      <div data-role="content">
        <p>
        Try the two buttons and have a look at the console.<br>
        Using the left button (data-) triggers "too many" events.<br>
        The right button does what I'd expect.
        </p>
      </div><!-- /content -->

    </div><!-- /page -->
  </body>
</html>
Fonctionne très bien dans Firefox 7.
En effet. Intéressant.
Fonctionne très bien sur Safari 5.1.1. Je reçois votre erreur d'exécution de Chrome...
Ce qui a été répondu par le post suivant: stackoverflow.com/questions/9321655/...

OriginalL'auteur nisc | 2011-10-20