Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   callbacks для функции плагина и jQuery (https://javascript.ru/forum/jquery/42930-callbacks-dlya-funkcii-plagina-i-jquery.html)

gh321 14.11.2013 12:09

callbacks для функции плагина и jQuery
 
НУжно применить эффект к тексту эффект( спомощью плагина http://jschr.github.io/textillate/ - анимация текста), а потом в этом spane текст заменить на другой.
var $tlt = $('#question').textillate({ 
    autoStart: false,
    in: { effect: 'fadeOutUp' }
    });

$tlt.textillate('start');

$('#question').text("new_text");

//если закоментировать $('#question').text("new_text");
//то $tlt.textillate('start'); работает


отрабатывает только $('#question').text("new_text");
Применяю callbacks
function textOut(){
	var $tlt = $('#q').textillate({ 
    autoStart: false,
    in: { effect: 'fadeOutUp' }
    });
	
	$tlt.textillate('start');
	}
	function textNext(){
	$("#q").text("new_text");
	}
	
	var callbacks = $.Callbacks();
	
	callbacks.add(textOut).add(textNext);
	
	callbacks.fire();

Но то же самое, вызывается только вторая функция, первая вообще визуально не работает.
Как вызвать вторую , после первой

DjDiablo 14.11.2013 19:38

Хочу рабочий пример чтобы можно помучить.
На jsfiddle, или в песочнице или хотябы запускаемый на форуме.

визуально притензий к кэлбекам нет, скорее всего косяк в textOut

Еще заметка.
Непонятно почему autoStart: false,
а затем тут же $tlt.textillate('start');

gh321 18.11.2013 12:40

Цитата:

Сообщение от DjDiablo (Сообщение 281155)
Непонятно почему autoStart: false,
а затем тут же $tlt.textillate('start');

это по докам инициализация функции

Цитата:

Сообщение от DjDiablo (Сообщение 281155)
визуально притензий к кэлбекам нет, скорее всего косяк в textOut

textOut - это что вроде обертки , что бы применить callbacks, вся функция приведенна.

Всегда ли должен работь такой код

function f1(){
// что то делаем
// например в цикле через задерку выводим текст
}

   function f2(){
// что то делаем
// алерт что текст выведен
}


     var callbacks = $.Callbacks();
	     
     callbacks.add(f1).add(f2);
    
     callbacks.fire();

DjDiablo 18.11.2013 13:17

Цитата:

Сообщение от gh321 (Сообщение 281616)
это по докам инициализация функции


textOut - это что вроде обертки , что бы применить callbacks, вся функция приведенна.

Всегда ли должен работь такой код

function f1(){
// что то делаем
// например в цикле через задерку выводим текст
}

   function f2(){
// что то делаем
// алерт что текст выведен
}


     var callbacks = $.Callbacks();
	     
     callbacks.add(f1).add(f2);
    
     callbacks.fire();

Да такой код должен работать всегда.

DjDiablo 18.11.2013 13:22

на js Fiddle
http://jsfiddle.net/uW82R/15/

форум лагает, лучше на фидл смотри
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script>
jQuery(function ($) {    
    var callbacks = $.Callbacks(),
            
    callback1 = function () {
        alert(1)
    },
    callback2 = function () {
        alert(2)
    };
    
    callbacks.add(callback1);    
    callbacks.add(callback2);    
    
    callbacks.fire();  

});
</script>


Часовой пояс GMT +3, время: 04:24.