4 votes

Pourquoi mon déclencheur jQuery ne fonctionne-t-il pas ?

Je viens juste de me familiariser avec JQuery, je m'excuse d'avance si c'est une erreur de débutant.

J'essaie d'obtenir une simple gâchette personnalisée pour tirer sans succès. Peut-être que quelqu'un peut m'aider et me montrer pourquoi cela ne fonctionne pas.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <title>jQuery Trigger example</title>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

  <script>
  $('#asset1').bind("triggerAssets", function() {
    alert('Assets');
  });
  </script>

  <script>
    $(document).ready(function(){
      $('#asset1').trigger("triggerAssets");
    });
  </script>

  </head>
  <body >
    <div id="asset1" class="assets" >Asset
        <table>
          <tr>
              <td>Field One: </td>
              <td><input type="text" name="fieldOne" id="exfieldOne" value=""/></td>
          </tr>
          <tr>
              <td>Field Two: </td>
               <td><input type="text" name="fieldTwo" id="exfieldTwo" value=""/></td>
          </tr>
          <tr>
              <td>Field Three: </td>
              <td><input type="text" name="fieldThree" id="exfieldThree" value=""/></td>
          </tr>
        </table>
     </div>    
    <hr>
  </body>
</html>

5voto

Ken Redler Points 15204

Votre fonction de liaison sera exécutée avant que la page ne soit rendue ; #asset1 n'existe pas encore. Déplacez-le dans le ready qui déclenche après le DOM est prêt (et votre élément est présent).

$(document).ready(function(){ // wait until the DOM is ready, then do:

  $('#asset1').bind("triggerAssets", function() {
    alert('Assets');
  });

  $('#asset1').trigger("triggerAssets");

});

0voto

voigtan Points 4834

Vous devez lier l'événement soit lorsque le DOM est prêt, soit ajouter un délégué sur les futurs éléments avec l'id de asset1 :

$(document).ready(function(){
    $('#asset1').bind("triggerAssets", function() {
        alert('Assets');
    });

    $('#asset1').trigger("triggerAssets");
});

0voto

Ben Miller Points 1095

Si vous avez besoin de faire quelque chose avant que la page ne soit chargée, définissez un objet pour gérer des choses telles que :

    <script>
            var test = {};
            $(test).bind("test", function(){
                alert("Your trigger was fired!");
            });

            $(test).trigger("test");

    </script>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X