Прототип Ajax для загрузки страницы и обновления хеша - PullRequest
0 голосов
/ 09 сентября 2010

У меня есть 3 страницы с другой концепцией / макетом / анимацией.

Я использую prototype & script.aculo.us

У меня есть это в моей навигации:

<ul>
<li><a href="#page1" id="page1" onClick="showPage(page1);">PAGE1</a></li>
<li><a href="#page2" id="page2" onClick="showPage('page2');">PAGE2</a></li>
</ul>

и это в моем js:

windows.location.hash: 'web';

function showPage() {
startloading();
var url: '/localhost/page2'+web;
new Ajax.Updater('maincontent', 'page2', { method: 'get' });
finishloading();
}

вопрос и проблема:

  1. Почему в хеше местоположения по-прежнему есть: / localhost / page1 / # page2с или без, если я использую var url?
  2. Вся анимация на странице 2 не работает, потому что я не поместил заголовок, но если я его поставил, я получил двойной заголовок и все же анимация победилатоже не работает.

Кто-нибудь может дать мне решение?

Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2010

В вашем коде

var url: '/localhost/page2'+web;

строка выдает ошибку, поэтому хеш не может быть изменен.Зафиксируйте его на

var url = '/localhost/page2'+web;

, тогда оно должно работать.

0 голосов
/ 09 сентября 2010

Правильный способ обновить ваш хэш:

window.location.hash = '#'+yourValue;

Трудно сказать, что именно вы пытаетесь сделать со своей функцией, но есть несколько вещей, которые явно немного ошибочны.

function showPage(var) { 
    startloading();
    var url: '/localhost/page'+var;
    new Ajax.Updater('maincontent', url, { method: 'get' });
    finishloading();
}

в зависимости от того, что вы на самом деле делаете, вполне вероятно, что вы, вероятно, захотите что-то более подобное:

function showPage(var) {         
    var url = '/localhost/page'+var;
    new Ajax.Updater('maincontent', url, { method: 'get' ,
        onCreate: function(){
            startloading();
        },
        onComplete: function(){
            finishloading();
        }
    });
}

Это полное предположение, хотя, если вы можете предоставить более подробную информацию, я могу помочь больше.

...