Исчезать или очищать элемент div после периода в MooTools 1.1 - PullRequest
0 голосов
/ 16 ноября 2010

Здравствуйте. Я пытаюсь смоделировать метод fade, предоставленный в mootools 1.2 в 1.1.Из-за ограничений разработки я должен использовать 1.1.Я в основном обновляю свой div после ответа ajax и хочу, чтобы этот div очищался через некоторое время

var resp = Json.evaluate (response);$ (Эль) .setHTML ( 'Спасибо!');// Показать сообщение на некоторое время, а затем очистить div

Спасибо за ваши ответы, я пытаюсь использовать подход Dimitar, но, поскольку я вообще не являюсь экспертом MooTools, мне понадобится некоторая помощь

window.addEvent ('domready', function () {$ (link_id) .addEvent ('click', function () {var a = new Ajax ('{$ url}' + this.id, {method: 'get', onComplete: function (response) {
var resp = Json.evaluate (response); $ (resp.id) .setHTML ('Спасибо'); // Мой глупый подход//setTimeout('$("'+divname+'").setHTML("")',3000);
}}). request ();
});
}

Так, в контексте моего кода, где мне определить Element.extend, который вы предлагаете? Я просто попытался добавить его в функцию domready, но не смог распознать метод fade

Ответы [ 3 ]

2 голосов
/ 16 ноября 2010

для определения прототипов элементов в 1.1x вам нужно Element.extend

Element.extend({
    fade: function(from, to, remove) {
        new Fx.Style(el, "opacity", {
            duration: 500,
            onComplete: function() {
                if (remove)
                    this.element.remove();
            }
        }).start(from, to);
    }
});

var el = $("elem");

el.setHTML('Thanks!');

(function() {
    el.fade(1,0, true);
}).delay(2000);

в этом примере я создал простой element.fade (), который ДОЛЖЕН иметь начальное и конечное значение и может по желанию удалить элемент из dom и т. Д., Если вы не планируете его снова использовать.

вот рабочий пример: http://jsfiddle.net/dimitar/cgtAN/

edit согласно вашему запросу на очистку html:

window.addEvent('domready', function() {
    $(link_id).addEvent('click', function() {
        new Ajax('{$url}' + this.id, {
            method: 'get',
            onComplete: function(response) {
                var resp = Json.evaluate(response), target = $(resp.id);
                target.setHTML('Thank you');
                (function() {
                    target.empty();
                }).delay(3000);
            }
        }).request();
    });
});
1 голос
/ 16 ноября 2010

Никогда не использовал Mootools много, но после некоторого jsfiddle кажется, что-то вроде этого будет работать:

function fadeAfter(id, msec)
{
    setTimeout(function(){    
        new Fx.Styles(id).start({'opacity': ['1', '0']});
    }, msec);
}
0 голосов
/ 16 ноября 2010

Хорошо. Я нашел решение, используя setTimeout

setTimeout ('$ ("+ divname +'"). SetHTML ("") ', 3000);

где 3000 время ожидания в миллисекундах

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