我的jquery代码有问题,有一个按钮列表,将显示从无切换到某个div的块,并且“保存”按钮将显示从块更改为无,当我再次单击同一按钮时从按钮列表显示没有变化,没有任何反应,为什么?
右边的http://gidzior.net/svg/pom01.html面板是'#right-panel li',红色按钮是'div.save'
来自'#right-panel li'的按钮应打开一个窗口,按钮'div.save'应该关闭它然后'#right-panel li'应该再打开它但不应该关闭它
$('#right-panel li').each(function(e){
var i = $(this).index() + 1;
$(this).click(function(){
if(i<10){
i = "0"+i;
}
$('#pom01par'+i+'WraperAbsolute').css('display', 'block');
$('#pom02par'+i+'WraperAbsolute').css('display', 'block');
$('#pom03par'+i+'WraperAbsolute').css('display', 'block');
$('#pom04par'+i+'WraperAbsolute').css('display', 'block');
$('#pom05par'+i+'WraperAbsolute').css('display', 'block');
$(this).css('background','#adff84');
$('.par'+i+'table').css('background','#adff84');
return false;
});
});
$('div.save').click(function(){
$(this).parent().css('display','none');
});
更新
我发现了一个错误,当我点击数字从1到9的按钮时,脚本输入0到数字1-9,索引是01,02,03 ...,当我再次点击它时索引是001,002,003,...依此类推,如何设置索引始终保持不变? 01,02,03,04,05,06,07,08,09
答案 0 :(得分:1)
如果您的意思是首先要点击以显示,请先点击隐藏,依此类推,请改用.toggle()
:
$('#pom01par'+i+'WraperAbsolute').toggle();
$('#pom02par'+i+'WraperAbsolute').toggle();
$('#pom03par'+i+'WraperAbsolute').toggle();
$('#pom04par'+i+'WraperAbsolute').toggle();
$('#pom05par'+i+'WraperAbsolute').toggle();
否则,使用当前代码,第一次单击将显示元素。第二次点击也会显示元素,但它们已经可见 - 您期望到底发生了什么?
答案 1 :(得分:1)
您编写的代码仅将display: none;
更改为block
,而不是更改。
我建议使用:
$('#pom01par'+i+'WraperAbsolute').toggle();
和
$(this).parent().hide();
代替。