Javascript jQuery文本旋转函数不使用参数
我在jQuery中搜索了一个文本旋转引擎,因为我不知道怎么做。我在StackOverflow上找到了答案: 我发现有效的代码:Javascript jQuery文本旋转函数不使用参数,javascript,jquery,arrays,Javascript,Jquery,Arrays,我在jQuery中搜索了一个文本旋转引擎,因为我不知道怎么做。我在StackOverflow上找到了答案: 我发现有效的代码: var terms = ["term 1", "term 2", "term 3","term 4","term 5","term 6","term 3"]; function rotateTerm2() { console.log($("#rotate").data("term")); //debug 1 var ct = $("#rotate").
var terms = ["term 1", "term 2", "term 3","term 4","term 5","term 6","term 3"];
function rotateTerm2() {
console.log($("#rotate").data("term")); //debug 1
var ct = $("#rotate").data("term") || 0;
console.log(ct);
$("#rotate").data("term", ct == terms.length -1 ? 0 : ct + 1).text(terms[ct]).fadeIn()
.delay(2000).fadeOut(400, rotateTerm2);
}
$(rotateTerm2);
这工作得很好,我可以在数组中添加新字符串并编辑动画计时。但是,我想使用参数将其编辑为函数,我可以将其放入脚本中,并在需要时导入。我计划了4个参数:
var terms = ["term 1", "term 2", "term 3","term 4","term 5","term 6","term 3"];
function rotateTerm(changeE,Rterms,delay,fadeSpeed) {
var element = "#" + changeE;
console.log(element); //debug 1
var ct = $(element).data("term") || 0;
console.log($(element).data("term")); //debug 2
console.log(ct); //debug 3
$(element).data("term", ct == Rterms.length -1 ? 0 : ct + 1).text(Rterms[ct]).fadeIn()
.delay(delay).fadeOut(fadeSpeed, rotateTerm);
}
rotateTerm("rotate",terms,2000,400);
但是,这不起作用,我得到了一个错误:
TypeError:Rterms未定义
这让我很困惑,因为我确信仅仅传递值并使用值变量而不是值本身将是小菜一碟。因此,我尝试了调试,正如我的代码中所看到的那样,I console.log记录了我得到的变量以及其他变量,并将它们与工作函数的console.log进行了比较,我发现错误出现在函数第二次运行之后,控制台日志的输出如下:
rotate text rotate.html:44:5未定义的textRotate.html:52:5
0 紧接着,第二次是这样的: 未定义的textRotate.html:44:5
未定义的textRotate.html:52:5
0 第三次出现了错误 我注意到由于某种奇怪的原因,元素变为“#未定义”。我认为由于数组(第二个参数)引发了一个类型错误,所以我查找了我是否犯了错误,javascript需要一些特殊条件才能将数组用作参数,但我认为没有,因为我没有找到任何引用。我试过。。。我的数组的参数部分中有运算符,但它也不起作用 现在我的问题是,有没有办法转向:
function rotateTerm2() {
console.log($("#rotate").data("term")); //debug 1
var ct = $("#rotate").data("term") || 0;
console.log(ct);
$("#rotate").data("term", ct == terms.length -1 ? 0 : ct + 1).text(terms[ct]).fadeIn()
.delay(2000).fadeOut(400, rotateTerm2);
}
$(rotateTerm2);
对于具有元素参数的类似引擎的函数、元素更改为的值的数组、延迟和动画速度?
我非常感谢您的帮助,我对jQuery非常陌生,我不知道为什么我的数组和元素突然未定义。您的淡出没有使用具有相同参数的rotateTerm调用,因此rTerms是
未定义的
.fadeOut(fadeout, function(){
rotateTerm( $element, terms, delay, fadeout )
});
演示
var术语=[“术语1”、“术语2”、“术语3];
函数旋转计($元件、术语、延迟、衰减)
{
var ct=$element.data(“术语”)| 0;
$element.data(“term”,ct==terms.length-1?0:ct+1).text(terms[ct]).fadeIn().delay(delay)
.fadeOut(fadeOut,function(){
旋转计($element、terms、delay、fadeout)
});
}
旋转仪($(“#旋转”),术语,2000年,200年代码>
这是一个句子这是什么变化
好的,很好,它正在工作,谢谢现在你能解释一下参数声明中“$元素”前面的“$”是什么意思吗?为什么我需要它?您可以查阅jquerys文档,了解jquery构造函数如何使用传递给它的函数参数,但我没有使用该方法。我用参数直接调用这个方法。