Разрешить создание цепочек в плагине jQuery
Это был долгий день, и я не могу понять, почему один из моих пользовательских плагинов jQuery не будет цепным.
То, что я пытаюсь сделать, это написать строку символов по одному в элементе, а затем, когда закончите, удалите текст, а затем напишите следующую строку
Плагин:
(function($) {
$.fn.writeDialogue = function(content) {
var contentArray = content.split(""),
current = 0,
elem = this,
write = setInterval(function() {
if(current < contentArray.length) {
elem.text(elem.text() + contentArray[current++]);
} else {
clearInterval(write);
return this;
}
}, 100);
};
})(jQuery);
В значительной степени я пытаюсь связать это таким образом:
$('#element').writeDialogue(textLine1).empty().writeDialogue(textLine2);
Не можете заставить его работать, есть идеи?
1 ответ
Решение
Это потому, что ваш код асинхронный. так что вы должны двигаться return this
:
(function($) {
$.fn.writeDialogue = function(content) {
var contentArray = content.split(""),
current = 0,
elem = this,
write = setInterval(function() {
if(current < contentArray.length) {
elem.text(elem.text() + contentArray[current++]);
} else {
clearInterval(write);
}
}, 100);
return this; // THERE
};
})(jQuery);