这是漫长的一天,我似乎不能弄清楚为什么我的一个自定义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);
不能让它工作,有什么主意吗?
这是因为你的代码是异步的。所以你必须移动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);