문제

나는 다음 mootools 스크립트를 만들었습니다

 window.addEvent('domready', function() {
    var shouts = "timed.php";
    var log = $('log_res');
    function updateData (url,target)
    {
        new Ajax(url,{
        method: 'get', 
        update: $(target), 
        onComplete: function() {
        log.removeClass('ajax-loading');}  }).request();
        log.empty().addClass('ajax-loading');
    }

    var update = function(){ updateData ( shouts, 'log_res' ); };
    update();           // call it immediately
    update.periodical(10000);   // and then periodically

 });

그녀는 HTML입니다

<div id="AJAX">
    <h3>Ajax Response</h3>
    <div id="log_res">exercise</div>
</div>

MOO 1.1을 사용합니다.

위의 내용은 정상적으로 작동하며 페이지로드 된 다음 Div ID Log_Res의 Ajax 요청 차기에는 업데이트 중에 Ajax로드 클래스가 있으며 DIV의 텍스트 연습이 완료되면 Ajax가 반환 한 모든 것으로 대체됩니다 (Yippee). 그러나 Ajax로드 클래스가 정보를 포함하기에 충분하지 않기 때문에 페이지가로드되는 동안 DIV에 사용자 정의 HTML을 DIV에 넣고 싶습니다. AJAX 요청이 정보를 검색하는 동안 DIV에 Spinny Flasher를 넣고 싶습니다. . 그것이 말이되기를 바랍니다!

도움이 되었습니까?

해결책

Mootools 1.2에서는 요청 된대로 작동합니다.

function updateData (url, target)
{
  var target = $(target);
  target.empty().addClass('ajax-loading');
  target.innerHTML = "Loading...";
  new Request({
    url: url, 
    method: 'get',
    onComplete: function(responseText) {
      target.removeClass('ajax-loading');
      target.innerHTML = responseText;
    }
  }).send();
}

당신은 재미가없고 mootools 1.1을 사용하기 때문에 조금 파헤쳐 봐야합니다 ... 실제로, 나는 당신이 가진 것과 거의 같은 설정을 사용하여 작동했습니다 (내가 사용하는 통지 target 대신에 log, 이 함수의 범위 외부에서 정의되었습니다) :

function updateData (url, target)
{
  var target = $(target);
  target.empty().addClass('ajax-loading');
  target.innerHTML = "Loading...";
  new Ajax(url, {
    method: 'get',
    update: target,
    onComplete: function() {
      target.removeClass('ajax-loading');
    }
  }).request();
}

다른 팁

당신은 다음과 같은 일을 할 수 없습니다 :

function updateData (url, target)
{
  var target = $(target);
  target.innerHTML = 'Please wait...';

  //and the rest of the function
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top