2010-03-26 5 views
0

J'ai déjà implémenté une pagination AJAX dans mon application Rails en utilisant le example code for the will_paginate plugin - qui semble utiliser Prototype.Aide au portage d'un peu de Prototype JavaScript vers jQuery

Mais si je voulais passer à l'utilisation de jQuery pour de futurs ajouts, je ne veux vraiment pas que les prototypes soient aussi installés (oui, je sais it's possible). Je ne l'ai pas écrit un coup de JavaScript années, et encore moins examiné Prototype et jQuery ... donc je pourrais utiliser un peu d'aide pour convertir ce bit en syntaxe jQuery compatible:

Merci à l'avance!


Edit: réponse de Nick Craver m'a fait 90% du chemin, donc je viens d'avoir à ramasser assez jQuery pour faire le remplacement de l'élément HTML. A la place de la ligne où Nick avait $.get($(this).attr("href"));, mis cette ligne:

$.get(this.href, null, function(data){ $(this).html(data); }, 'html'); 

Répondre

1

Vous pouvez raccourcir ce bas un peu en jQuery pour:

$(function() { 
    $('.pagination a').live('click', function(e) { 
    $(this).parent('.pagination') 
      .append("<img src='/images/spinner.gif' class='spinner' />"); 
    $.get($(this).attr("href")); 
    return false; 
    }); 
}); 

Je ne suis pas tout à fait sûr new Ajax.Request(el.href, { method: 'get' }) cependant, est ce script est demandé? Il semble que rien ne soit fait avec le contenu après le retour.

+1

Je ne suis pas très confiant avec Ruby, mais le site auquel il est lié a 'format.js' quelque part. Ce qui devrait signifier que [[nom_action] .js.erb] est appelé, ce qui devrait renvoyer un code-j, que le prototype évalue automagiquement si un type-mime est associé à javascript http://api.prototypejs.org/ajax/ajax/request.html est réglé. Mais sans ce morceau de code, nous n'avons pas de chance – jitter

+0

Awesome! Je vais essayer de l'adapter dans un instant ... En effet, il y a une section format.js incluse sur cette page - il ne s'agit que de 'render: update do | page | {page.replace 'results',: partial => 'search_results'} '. Donc je pense que Rails est juste en train de rendre partial le html/erb qui remplace le div entier "results", mais je ne suis pas sûr de la façon dont le callback JavaScript le fait. – ewall

+0

J'adore le fait que le code jQuery soit court et clair ... J'avais entendu dire que certaines personnes le préféraient à cause de cela, mais maintenant je le vois. Je dois apprendre à en savoir plus bientôt! – ewall