gpt4 book ai didi

javascript - 删除自执行匿名函数

转载 作者:行者123 更新时间:2023-11-28 09:44:45 25 4
gpt4 key购买 nike

我正在使用匿名函数和 Slider() 函数。我只需要一个函数来实现所有相同的功能。我正在使用的匿名函数应该被删除。下面的代码应该进入一个函数。

这是我尝试过的:

http://jsfiddle.net/QNZDX/5/

$(function() {
//FadeIn/FadeOut Image on Set Time Interval on Slide
timer=setInterval(Slider, mainInterval);
var div=$('<div id="paging_inner"></div>');
for(i=0;i<maximages;i++)
{
div.append($('<a id="page_'+(i+1)+'" data-index="'+(i+1)+'"><span></span></a>'));
}
$('#paging').append(div);

$('#paging a').on('click', function(e){
e.preventDefault();
clearInterval(timer);
prevIndex=$(this).attr('data-index')-1;
$('#paging div a span').stop(1,1);
Slider();
timer=setInterval(Slider, mainInterval);
});

});

function Slider() {
$('#imageSlide').fadeOut("slow", function() {
if (prevIndex >= maximages) prevIndex = 0;

$("#panel").fadeIn("slow").css('background', '#000');

var title = $xmldata.find("images").find("image:eq(" + prevIndex + ")").find("title").text();
$("#title").text(title).fadeIn("slow");

var imgurl = $xmldata.find("images").find("image:eq(" + prevIndex + ")").find("url").text();
$(this).attr('src', imgurl).fadeIn("slow");

var desc = $xmldata.find("images").find("image:eq(" + prevIndex + ")").find("desc").text();
$("#desc").text(desc).fadeIn("slow");
$('#paging a span')
.removeClass('active').css('display','block');
$('#paging a#page_'+(prevIndex+1)+' span')
.addClass('active')
.slideUp(mainInterval);
prevIndex++;

});
}

});

最佳答案

首先,

It's more than an anonymous function - it's a self-calling anonymous function

但在这种情况下根本没有必要,

这将与以前的工作方式相同

//FadeIn/FadeOut Image on Set Time Interval on Slide
timer = setInterval(Slider, mainInterval);
var div = $('<div id="paging_inner"></div>');
for (i = 0; i < maximages; i++) {
div.append($('<a id="page_' + (i + 1) + '" data-index="' + (i + 1) + '"><span></span></a>'));
}
$('#paging').append(div);

$('#paging a').on('click', function(e) {
e.preventDefault();
clearInterval(timer);
prevIndex = $(this).attr('data-index') - 1;
$('#paging div a span').stop(1, 1);
Slider();
timer = setInterval(Slider, mainInterval);
});

function Slider() {
$('#imageSlide').fadeOut("slow", function() {
if (prevIndex >= maximages) prevIndex = 0;

$("#panel").fadeIn("slow").css('background', '#000');

var title = $xmldata.find("images").find("image:eq(" + prevIndex + ")").find("title").text();
$("#title").text(title).fadeIn("slow");

var imgurl = $xmldata.find("images").find("image:eq(" + prevIndex + ")").find("url").text();
$(this).attr('src', imgurl).fadeIn("slow");

var desc = $xmldata.find("images").find("image:eq(" + prevIndex + ")").find("desc").text();
$("#desc").text(desc).fadeIn("slow");
$('#paging a span').removeClass('active').css('display', 'block');
$('#paging a#page_' + (prevIndex + 1) + ' span').addClass('active').slideUp(mainInterval);
prevIndex++;

});
}

Anything declared with "var" inside the function is private to that function and cannot be accessed from outside it. That's actually the main reason for using self-calling anonymous functions: to provide a local scope where you can set up functions and variable without cluttering the global namespace.

看看updated demo

关于javascript - 删除自执行匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11934875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com