2013-08-01 2 views
1

Я работаю над проектом magento, и я пытаюсь загрузить больше продуктов по нажатию кнопки больше.prototype AJAX loading blank page onSuccess

Я могу видеть их загрузку, но после этого он просто загрузит пустую страницу после нее.

Я понятия не имею, что происходит или почему.

Это код, у меня есть

var loadMore = Class.create({ 
     initialize: function (list, href, pattern) { 
      var that = this; 

      this.list = list; 
      this.list.insert({ after : '<div class="more"><span id="more_button" class="more-button">More</span></div>'}); 
      this.href = href.readAttribute('href'); 
      this.button = $('more_button'); 
      this.holder = new Element('div', { 'class': 'response-holder' }); 

      this.button.observe('click', function() { 
       if (!that.button.hasClassName('loading')) { 
        new Ajax.Request(that.href, { 
         onCreate: function() { 
          that.button.addClassName('loading'); 
         }, 
         onSuccess: function(response) { 
          if (200 == response.status) { 
            that.holder.update(response.responseText).select(pattern).each(function(elem) { 
            that.list.insert({ bottom : elem }); 

           }), 



    that.href = that.holder.select('.next-page')[0].readAttribute('href'); 
           that.button.removeClassName('loading'); 

           if (!that.href) { 
            that.button.up().remove(); 
           } 

          } 

         } 
        }); 
       } 
      }); 
     } 
    }); 

Если кто-то может помочь мне, что было бы удивительным!

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

ответ

0

Я мог бы предложить вам переписать код и использовать Thiz для этого? Ваш код очень трудно читать.

Я не вижу никаких причин, чтобы использовать событие OnCreate Запроса Ajax, который, кстати, зарезервирован для Ajax ответчики (в спецификации: http://prototypejs.org/doc/latest/ajax/Ajax/Request/)

Вместо этого, вы можете добавить имя класса в данный момент вы входите в! that.button.hasClassName («Загрузка») ...

if (!that.button.hasClassName('loading')) { 
    that.button.addClassName('loading'); 
    new Ajax.Request(that.href, { 
.... 

Существует гораздо больше происходит за кулисами, как ваш CSS, Magento, конечно, но также содержащие и родительский HTML элементы поэтому очень сложно дать какие-либо обоснованные советы. Что вы сделали, чтобы отладить это?

Karl ..

1

я с той же проблемой в моем Magento Iphone оригинальной теме, но ошибка из-за введения кода, в основном «сценарий» теги из Google Analytics, ClickTale и подобных вещей.

, что я сделал, чтобы исправить это было «разобрать» ответ AJAX и изменить открытие «сценария» тег с HTML сущности:

ниже линии 117 (приблиз в iphone.js)

if (200 == response.status) { 
that.holder.update(response.responseText).select(pattern).each(function(elem) { 

заменить это:

str = response.responseText;         
str = str.replace(/<script/gi, '&lt;script'); 

that.holder.update(str).select(pattern).each(function(elem) {