嘿所有,我是JavaScript的新手,我正在使用jQuery库。 基本上我正在尝试创建此行的倍数,我正在使用“:eq(0)来执行此操作。 问题在于:eq(0)在代码中重复3次,并且每次重复时我都在循环,它有不同的数字。
这就是我从中得到的结果我认为(:eq(0),:eq(1),:eq(2),:eq(3)等。) 我需要它来做这个(:eq(0),:eq(0),:eq(0),:eq(1):eq(1):eq(1)等...)
for (i = 0; i < 6; ++i) {
var $titleMarquee = '<marquee scrollamount="5" direction="left" width="233" align="left" behavior="alternate" loop="1"><span>';
var $lieq = "li:eq("+i+")";
$("ul.side-block-content "+$lieq+"").mouseenter(function() {
$("ul.side-block-content "+$lieq+" .article-title a span")
.replaceWith($titleMarquee+$("ul.side-block-content "+$lieq+" .article-title a").text()+"</span></marquee>");
});
}
如果有人可以让我知道如何正确地执行此循环,或者可能如何重新创建代码以执行相同的操作,那将是非常好的。
提前致谢。
@Nick的回答:
var $titleMarquee = '<marquee scrollamount="5" direction="left" width="233" align="left" behavior="alternate" loop="1"><span>';
for (i = 0; i < 6; ++i) {
for (j = 0; j < 7; ++j) {
$("ul.side-block-content li:eq("+i+")").mouseenter(function(){$("ul.side-block-content li:eq("+i+") .article-title a span").replaceWith($titleMarquee+$("ul.side-block-content li:eq("+i+") .article-title a").text()+"</span></marquee>");});
$("ul.side-block-content li:eq("+i+")").mouseleave(function(){$("ul.side-block-content li:eq("+i+") .article-title a marquee").replaceWith('<span>'+$("ul.side-block-content li:eq("+i+") .article-title a").text()+"</span>");});
}
}
这就是我现在使用的,它不起作用。我这样做了吗?
@ Gilly3
$("ul.side-block-content li marquee").each(function() {
this.stop(); // prevent the marquee from scrolling initially
}).mouseenter(function() {
this.start(); // start the scroll onmouseenter
});
<marquee scrollamount="5" direction="left" width="233" align="left" behavior="alternate">
答案 0 :(得分:1)
当您将鼠标悬停在<li>
文本上时,看起来似乎正在尝试滚动它。是吗?
只需将选取框代码放入原始html中即可:
$(function ()
{
$("ul.side-block-content li marquee").each(function() {
this.stop(); // prevent the marquee from scrolling initially
}).mouseenter(function() {
this.start(); // start the scroll onmouseenter
});
});
我还想说不要使用marquee标签,因为它已被弃用并改为使用jQuery插件,但我看到的最后一个jQuery选框插件实际上在后端使用了<marquee>
。所以... pfft。
答案 1 :(得分:0)
你可以在里面嵌入另一个for循环,如下:
for (i = 0; i < 6; ++i) {
for (j = 0; j < 3; ++j) {
// repeat i three times, and use :eq("+i+")
}
}