Ajax-запрос с использованием mootools не работает - PullRequest
0 голосов
/ 12 сентября 2009

Я пытаюсь загрузить контент в div с этим руководством. К сожалению, это просто загружает файл HTML как новую страницу.

Это javascript, который должен делать эту работу

window.addEvent('domready', function() {

     $('runAjax').addEvent('click', function(event) {
         event.stop();
         var req = new Request({
             method: 'get',
             url: $('runAjax').get('href'),
             data: { 'do' : '1' },
             onRequest: function() { alert('The request has been made, please wait until it has finished.'); },
              onComplete: function(response) { alert('Response received.); $('container').set('html', response); }
         }).send();
$('runAjax').removeEvent('click');
     });
});

это ссылка, которая должна инициировать функцию

<a href="about.html" id="runAjax" class="panel">Profil</a>

и это div-структура index.html. Я хочу, чтобы содержимое было загружено в "контейнер" - DIV

<div id="view">
    <div id="sidebar">
        mib
    </div>

    <div id="container">
        <div id="logo">
            <!--img src="img/logo.png"-->
        </div>

        <div align="center" id="tagline">   
            content
        </div>
    </div>
</div>

Меня не волнует, какой скрипт я использую, если он совместим с MooTools 1.2, потому что он мне нужен для скользящей верхней панели, и было бы гораздо больше работы, например, чтобы изменить его на панель jquery.

Ответы [ 3 ]

0 голосов
/ 20 сентября 2009

Вы делаете вещи сложнее, чем нужно. Попробуйте это:

window.addEvent('domready', function(){
    function loadPage(url) {
        $('container').load(url);
    }

    $('runAjax').addEvent('click', function(e) {
        e.stop();
        loadPage(this.get('href'));
        this.removeEvent('click', loadPage);
    });
});

Если это не работает, загрузите Firebug и посмотрите, какие ошибки Javascript регистрируются. Вот ссылка на ярлык Element.load ():

http://mootools.net/docs/core/Request/Request.HTML#Element:load

0 голосов
/ 05 декабря 2009

Вы не останавливаете событие нажатия, как рекомендуется.

вместо:

event.stop();

сделать:

new Event(event).stop();

0 голосов
/ 12 сентября 2009

Здесь пропущено:

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