Помогите портировать немного Prototype JavaScript в jQuery - PullRequest
0 голосов
/ 27 марта 2010

Я уже реализовал некоторую нумерацию страниц AJAX в своем приложении Rails, используя пример кода для плагина will_paginate - который, очевидно, использует Prototype.

Но если бы я захотел перейти на использование jQuery для будущих дополнений, я действительно не хотел бы, чтобы вещи Prototype тоже сидели без дела (да, я знаю , возможно ). Я много лет не писал JavaScript, не говоря уже о том, чтобы изучать Prototype и jQuery ... поэтому я мог бы использовать некоторую помощь для преобразования этого бита в jQuery-совместимый синтаксис:

document.observe("dom:loaded", function() {
  // the element in which we will observe all clicks and capture
  // ones originating from pagination links
  var container = $(document.body)

  if (container) {
    var img = new Image
    img.src = '/images/spinner.gif'

    function createSpinner() {
      return new Element('img', { src: img.src, 'class': 'spinner' })
    }

    container.observe('click', function(e) {
      var el = e.element()
      if (el.match('.pagination a')) {
        el.up('.pagination').insert(createSpinner())
        new Ajax.Request(el.href, { method: 'get' })
        e.stop()
      }
    })
  }
})

Заранее спасибо!

<ч />

Редактировать: Ответ Ника Крейвера дал мне 90% пути, поэтому мне просто нужно было собрать достаточно jQuery для подстановки элемента HTML. Вместо строки, в которой у Ника был $.get($(this).attr("href"));, поместите эту строку:

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

1 Ответ

1 голос
/ 27 марта 2010

Вы можете сократить это немного в jQuery до:

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

Я не совсем уверен насчет new Ajax.Request(el.href, { method: 'get' }), не запрашивается ли этот скрипт? Похоже, что ничего не делается с контентом после возврата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...