2013-10-20 2 views
0

У нас есть этот бит кода для обновления DIV, который у нас есть, включая файл для запроса данных. Текущая функция работает отлично, но мы хотим, чтобы mootools-миграция.Преобразование функции из jQuery в Mootools

JS код:

<script> 
jQuery.noConflict(); 
(function(jQuery) { 
    jQuery(function() { 
     jQuery(document).ready(function() { 
      // First initial refresh onLoad 
      jQuery(".wall_actions").fadeOut("fast").load("auto-refresh.php").fadeIn("fast"); 
      // Use now with Interval - 10 seconds 
      var refreshId = setInterval(function() { 
       jQuery(".wall_actions").fadeOut("fast").load('auto-refresh.php').fadeIn("fast"); 
      }, 5000); 

      jQuery.ajaxSetup({ 
       cache: false 
      }); 

     }); 
    }); 
})(jQuery); 
</script> 

<div class="wall_actions"> 
<!-- other code --> 
</div> 

Мы попытались перенести с помощью этого метода без успеха.

<script language="javascript"> 
var request = new Request({ 
    url: 'auto-refresh.php', 
    method: 'get', 
    update: 'refresh-me', 
    onComplete: function(response) { 
     $('.wall_actions').set('html',response); 
    } 
}) 

var doRefresh = function() { 
    request.send(); 
}; 

doRefresh.periodical(5000); 
</script> 

авто-refresh.php

<?php 
$page = "auto-refresh"; 
include "header.php"; 

$actions_array = $actions->actions_display(0, $setting['setting_actions_actionsperuser']); 
$smarty->assign_by_ref('actions', $actions_array); 
include "footer.php"; 
?> 

Как мы можем использовать функцию JQuery, чтобы сделать запрос, но с MooTools?

+3

проголосовали за повторное открытие с учетом принятого ответа. –

ответ

2

Вы были близки, на самом деле вы просто пропустили $$.

$ является селектором ID, вы должны использовать document.getElements('.wall_actions') или $$('.wall_actions'); вместо одного доллара в $('.wall_actions').set('html',response);.


Если вы хотите иметь замирание из/в, вы можете попробовать это:

var request = new Request({ 
    url: 'auto-refresh.php', 
    method: 'get', 
    update: 'refresh-me', 
    onComplete: function (response) { 
     el.set('tween', { 
      onComplete: function() { 
       el.set('html', response).fade('in') 
      } 
     }); 
     el.fade('out'); 
    } 
}) 

var doRefresh = function() { 
    request.send(); 
}; 

window.addEvent('domready', function() { 
    el = $$('.wall_actions'); 
    doRefresh.periodical(5000); 
}); 

Я не знаю вашего HTML, но проверить это Fiddle.
(кстати, дважды проверьте, что ваш php действительно что-то делает)

+1

Спасибо Серхио, который работает как шарм! –

Смежные вопросы