将函数从jQuery转换为Mootools

时间:2013-10-20 04:32:34

标签: javascript jquery ajax function mootools

我们有一些代码来刷新我们拥有的DIV,包括一个请求数据的文件。当前的功能运行得很好但我们想要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?

1 个答案:

答案 0 :(得分: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确实回应了什么)