http://gidzior.net/svg/pom01.html面板是'#right-panel li',红色按钮是'div.save'
来自'#right-panel li'的按钮应该打开一个窗口,按钮'div.save'应该关闭它然后'#right-panel li'应该再打开它
当我点击数字从1到9的按钮时,脚本输入0到数字1-9,索引是01,02,03 ...,当我再次点击它时索引是001,002 ,003,...等等,我如何设置索引始终保持不变? 01,02,03,04,05,06,07,08,09
//OPEN A WINDOW
$('#right-panel li').each(function(e){
var i = $(this).index()+1;
$(this).click(function(){
if(i<=9){
i = "0"+i;
}
$('#pom01par'+i+'WraperAbsolute').fadeIn("fast");
$('#pom02par'+i+'WraperAbsolute').fadeIn("fast");
$('#pom03par'+i+'WraperAbsolute').fadeIn("fast");
$('#pom04par'+i+'WraperAbsolute').fadeIn("fast");
$('#pom05par'+i+'WraperAbsolute').fadeIn("fast");
$(this).css('background','#adff84');
$('.par'+i+'table').css('background','#adff84');
return false;
});
});
// CLOSE A WINDOW
$('div.save').click(function(){
$(this).parent().fadeOut("fast");
});
答案 0 :(得分:1)
突然出现的一个问题是:
if(i<=9){
i = "0"+i;
}
您正在修改i的值;
而是在点击功能中使用另一个变量:
$('#right-panel li').each(function(e){
var i = $(this).index()+1;
$(this).click(function(){
var this_i = i;
if(this_i<=9){
this_i= "0"+i;
}
$('#pom01par'+this_i+'WraperAbsolute').fadeIn("fast");
$('#pom02par'+this_i+'WraperAbsolute').fadeIn("fast");
$('#pom03par'+this_i+'WraperAbsolute').fadeIn("fast");
$('#pom04par'+this_i+'WraperAbsolute').fadeIn("fast");
$('#pom05par'+this_i+'WraperAbsolute').fadeIn("fast");
$(this).css('background','#adff84');
$('.par'+this_i+'table').css('background','#adff84');
return false;
});
});
答案 1 :(得分:0)
我认为您应该在i
函数的范围内定义click(
,或者更好的是 - 根本不定义它:
$(this).click(function(){
var iAsString = $(this).index()+1 + "";
if($(this).index()+1<=9){
iAsString = "0"+iAsString;
}
答案 2 :(得分:0)
我不确定错误。
但我尝试制作自己的索引。
更改
var i = $(this).index()+1;
通过
var i = 1;
在循环结束时放i ++;
$('#right-panel li').each(function(e){
......
i++;
}
答案 3 :(得分:-1)
我不明白你为什么要做这样的事情,但我提出了一个非常简短的解决方案。 尝试以这种方式修改条件
if(i<=9 && i.length==1){
i = "0"+i;
}
这样你就可以将i
的值作为数字和字符串来检查。