通过<a>链接
Override jQuery cycle via <a> link
是否可以通过链接访问jQuery循环来覆盖i变量?
我见过这样做的例子,但在类似这样的情况下,cycle()函数位于变量内部:
$(document).ready(function() {
$('div[id^="content-"]').hide();
});
$(window).load(function() {
var divs = $('div[id^="content-"]').hide(),
i = 0;
(function cycle() {
divs.eq(i).fadeIn(400)
.delay(5000)
.fadeOut(400, cycle);
if (typeof window["Stage" + i] != 'undefined')
{
window["Stage" + i].destroy();
}
i = ++i % divs.length; // increment i,
// and reset to 0 when it equals divs.length
if (i == 1)
{
window["Stage" + i] = new swiffy.Stage(document.getElementById('graph_lines'), swiffyobject);
}
else if (i === 0)
{
window["Stage" + i] = new swiffy.Stage(document.getElementById('circle_lines'), circleobject);
}
window["Stage" + i].start();
})();
});
演示链接
如果您询问周期是否可以全局访问,那么简单的答案是
否
cycle
函数是私有函数闭包的一部分。你必须让它全球化,才能以这种方式运作。但强烈建议我们不要污染全球范围,因此您应该将此功能应用于该关闭中的链接:
$(function(){
var divs = $('div[id^="content-"]').hide();
var cycle = function() {
// do the thing although you're using globals etc.
}
$("a").click(cycle);
});
无论如何,这就是实现这一点的方法,但您必须清理代码,删除全局变量,除非它们是真正需要的。学习jQuery及其工作原理,不要重复做同样的事情。当你学到一点的时候,你就会知道我在说什么。
注意:我不确定您所说的通过
a
链接覆盖是什么意思。在我的例子中,我已经附加了点击事件,但这可能不是您想要的。你必须更加具体。
点击链接后迅速运行
我建议你让自己的生活变得轻松,并添加以下链接:
<a href="#" class="start-swiffy" data-swiffy="0">Start swiffy 0</a>
取而代之的是这个代码:
$(function() {
var divs = $('div[id^="content-"]').hide();
divs.each(function(index) {
$(this).fadeIn(400)
.delay(5000)
.fadeOut(400);
// replaces first if statement
window["Stage" + index] && window["Stage" + index].destroy();
if (index === 0)
{
window["Stage1"] = new swiffy.Stage(document.getElementById('graph_lines'), swiffyobject);
}
if (index === divs.length - 1)
{
window["Stage0"] = new swiffy.Stage(document.getElementById('circle_lines'), circleobject);
}
window["Stage" + ((index + 1) % divs.length)].start();
});
$("a.start-swiffy").click(function(evt) {
evt.preventDefault();
window["Stage" + $(this).data("swiffy")].start();
});
});
尽管我仍然不明白为什么你要做所有这些div
渐变和删除阶段,并按偏移顺序逐个运行,这样它们就从第二个开始,第一个从最后一个开始?我想这是可以改进的主要部分。。。
相关文章:
- 链接所有<a>Meteor
- 如何制作href链接和<李>在一个包装中
- <中的链接;选择>下拉选项
- Javascript Show Hide-将切换操作从复选框更改为<a href>链接
- 通过<a>链接
- 使用类似汤博乐的<a>链接
- 链接问题:下一个字符包含在<a>TinyMce ui TinyMce中的标签
- 当单击<a>链接在chrome扩展中,popup.html如何保持打开状态
- 删除所有<link>iframe中的元素
- React路由器<link>如何在Jest测试中获取href的值
- 如何将(CSS/HTML)的包链接在一起.CSS/HTML->CSS/HTML->CSS/HTML
- 从<link>标签
- Regex从除<link>标签
- 如何更改CSS文件或隐藏<link>标签
- 有没有一种方法可以包括<脚本>或者<link>在所有页面中显示一次
- 我可以在<link>标记href
- 如何在<link>具有rel=“;作者”;
- 从VBulletin调用外部动态链接>需要在基本目标iFrame中打开的链接
- 使用Javascript创建<link>元素,然后将其添加到<头部>部分
- 在<link>如果没有检测到路径名