Javascript 嵌套函数不起作用
嘿,我是javascript新手,我不能让嵌套函数工作,我只是不明白为什么。范围有问题吗?thx很多Javascript 嵌套函数不起作用,javascript,function,scope,nested,Javascript,Function,Scope,Nested,嘿,我是javascript新手,我不能让嵌套函数工作,我只是不明白为什么。范围有问题吗?thx很多 $(document).ready(function(){ var prepocet = function(smer, poradie, pocet_obrazkov) { if (smer == "left") { if (pozicia - 1 < 1) { return pocet_obrazkov } else
$(document).ready(function(){
var prepocet = function(smer, poradie, pocet_obrazkov) {
if (smer == "left") {
if (pozicia - 1 < 1) {
return pocet_obrazkov
} else {
return pozicia - 1
};
} else {
if (pozicia + 1 > pocet_obrazkov) {
return 1
} else {
return pocet_obrazkov + 1
};
};
};
$("body").on("click", ".arrow", function() {
var smer = "left"
var pocet_obrazkov = $(this).parent().parent().next(".seria").children().length;
var pozicia = $(this).parent().parent().next(".seria").children().index(".on") + 1;
if ($(this).hasClass("arrow left")) {
smer = "left"
} else {
smer = "right"
};
var nova_pozicia = prepocet(smer, poradie, pocet_obrazkov);
$(this).parent().parent().next().children('#iddv img:nth-child(' + pozicia + ')').hide().addClass("off").removeClass("on");
$(this).parent().parent().next().children('#iddv img:nth-child(' + nova_pozicia + ')').show().addClass("on").removeClass("off");
});
});
$(文档).ready(函数(){
var PREPECET=功能(smer、poradie、pocet_obrazkov){
如果(smer==“左”){
if(pozicia-1<1){
返回pocet_obrazkov
}否则{
返回波齐西亚-1
};
}否则{
如果(pozicia+1>pocet_obrazkov){
返回1
}否则{
返回pocet_obrazkov+1
};
};
};
$(“body”)。在(“click”、“.arrow”,function()上{
var smer=“左”
var pocet_obrazkov=$(this.parent().parent().next(“.seria”).children().length;
var pozicia=$(this.parent().parent().next(“.seria”).children().index(“.on”)+1;
if($(this).hasClass(“箭头左”)){
smer=“左”
}否则{
smer=“对”
};
var nova_pozicia=Prepecet(smer、poradie、pocet_obrazkov);
$(this).parent().parent().next().children(“+pozicia+”)).hide().addClass(“off”).removeClass(“on”);
$(this).parent().parent().next().children(“#iddv img:nth child(“+nova_pozicia+”))).show().addClass(“开”).removeClass(“关”);
});
});
是,这是一个范围问题,您需要将prepcet
的声明移到$(document).ready()函数的外部,因为该函数存在于此。检查JavaScript控制台是否有错误。我猜你会看到未定义的:函数参数名是poradie
,但是在函数中,你使用了pozicia
。再往下看,在另一个范围中,您定义了pozicia
,但是prepcet()
看不到这一点。您是对的,谢谢!我怎么能看不出我的变量名是错误的呢。