我不是很擅长jquery,我在加载文本文件并将其显示在字符串上时遇到了一些麻烦。
以下是代码:
<script>
$(function(){
$("#typed").typed({
strings: ["Hello World"], //i want to load a text file and show it here.
typeSpeed: 50,
backDelay: 500,
loop: false,
contentType: 'html', // or text
// defaults to false for infinite loop
loopCount: false,
callback: function(){ foo(); },
resetCallback: function() { newTyped(); }
});
$(".reset").click(function(){
$("#typed").typed('reset');
});
});
function newTyped(){ /* A new typed object */ }
function foo(){ console.log("Callback"); }
</script>
这是我尝试的:
<script>
$(function(){
$.get('file.txt', function(data) {
alert(data) //just to se that it has loaded.
});
$("#typed").typed({
strings: function(){ data(); }, //the alert shows the text in the file but here it does not show the text.
typeSpeed: 50,
backDelay: 500,
loop: false,
contentType: 'html', // or text
// defaults to false for infinite loop
loopCount: false,
callback: function(){ foo(); },
resetCallback: function() { newTyped(); }
});
$(".reset").click(function(){
$("#typed").typed('reset');
});
});
function newTyped(){ /* A new typed object */ }
function foo(){ console.log("Callback"); }
</script>
正如你所看到的,这可能没有意义。 对不起任何英语错误。 谢谢。
答案 0 :(得分:0)
$.get
是异步的。这意味着在typed()
被检索之前,data
对象会被实例化。对于任何AJAX请求,任何依赖于其结果的代码都必须放在回调中。试试这个:
$.get('file.txt', function(data) {
alert(data) //just to se that it has loaded.
$("#typed").typed({
strings: data,
typeSpeed: 50,
backDelay: 500,
loop: false,
loopCount: false,
callback: function() {
foo();
},
resetCallback: function() {
newTyped();
}
});
});
另请注意,Typed documentation strings
属性需要是一个字符串数组,而不是当前AJAX请求返回的HTML。