Changement événement onclick javascript de jquery cliquez sur et encore de passer des paramètres

Je pense que j'ai peut-être raté quelque chose ou n'ont pas compris fondamental de jQuery. J'ai cherché pendant des heures mais pas encore trouvé une réponse à ma question.

J'ai un vieux site que je me suis mise à niveau pour utiliser jQuery et de nombreux liens appeler un JavaScript onClick appel qui passe de plusieurs paramètres, comme dans l'exemple ci-dessous:

<a href="#" onclick="displayData('Book Title', 'ISBN', 'dateOfPublishing', 'Price');">View Details</a>

Le problème est que j'ai mis à jour l'ancien displayData fonction avec différents jQuery code et le displayData fonction au sein de la

$(document).ready(function() { 
});

code, et cela semble empêcher la fonction displayData être appelée à l'aide de la onClick comme il est dit objet attendu. J'ai déplacé le displayData fonction de la $(document).ready(), mais, ce faisant, cela a empêché les références à d'autres fonctions au sein de la $(document).ready() code référencé.

Un coupé exemple de ce que j'ai, c'est ci-dessous:

<script>
  $(document).ready(function() {
    function displayData(title, isbn, dt, price) {
      //there's a call to jQuery AJAX here
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "WebServices/BookService.asmx/GetBookReviews",
            data: "{isbn: '" + isbn + "'}",
            dataType: "json",
            success: function(msg) {
                DisplayReviews(msg.d);
            }
        });
      return false;
    }

    function DisplayReviews(data) {
       //data normally formatted here and passed to formattedData variable
       var formattedData = FormatData(data);
       $('#reviewScreen').html(formattedData);
    }

    function FormatData(data) {
      //function reformats data... code removed for space..
      return data;
    }


  });
</script>


<table>
  <tr><td><a href="#" class="reviewLink" onclick="displayData('Book Title', '1234141HABJA1', '2010-01-12', '$15.99');">View Reviews</a></td><td>Book Title</td></tr>
  <tr><td><a href="#" class="reviewLink" onclick="displayData('Book TItle 2', '516AHGN1515', '1999-05-08', '$25.00');">View Reviews</a></td><td>Book Title 2</td></tr>
</table>

Ce que je voudrais faire est de retirer le onclick="displayData();" dans le lien et au lieu de nous un jQuery cliquez sur référence, quelque chose comme

$('a.reviewLink').click(function() {
  displayData(parameters go here....);
});

Je ne sais pas comment je ferais passer les paramètres à la fonction à partir du lien qu'elles ne sont pas plus dans le code HTML onclick attribut.

Si je continue à utiliser le onclick attribut dans le lien, et déplacer le displayData(params) de la $(document).ready() bloc de code, il fonctionne très bien, mais au moment où j'essaie de référence et toute autre fonction au sein de la $(document).ready() bloc de code je obtenir le redouté objet attendu erreur avec les autres fonctions telles que DisplayReviews(param).

Je ne sais pas si ce fait aucun sens.... désolé si c'est confus, je ne suis pas le meilleur des mondes programmeur et ne pas connaître la terminologie nécessairement, ont donc essayé du mieux que je peux expliquer. J'espère que vous pouvez aider.

Merci beaucoup

  • pouvez-vous modifier le HTML ou avez-vous besoin d'extraire les paramètres à partir de l'existant onclick attribut?
  • Je peux modifier le HTML, je n'étais pas sûr de coller avec le onclick ou d'essayer et de mieux utiliser jQuery et d'en extraire les paramètres d'une autre façon. Le code HTML est généré dynamiquement, donc les paramètres nécessaires sont ajoutés à cette époque, c'est pourquoi j'ai utilisé pour utilisé l'attribut onclick. Merci!
  • Vous pouvez créer le code JavaScript nécessaire (à savoir la fixation du gestionnaire de clic) de manière dynamique.
  • Je vais jeter un oeil à la fixation du gestionnaire de clic de manière dynamique, mais ne aime l'idée de l'HTML5 BGerrissen se réfère.
InformationsquelleAutor Cydaps | 2010-09-02