Javascript 藏错盒子了
我有一个链接数组,当点击时会显示一个隐藏的div,其中包含与之相关的信息。单击每个链接时,都会显示与之关联的不同div。我试图在每个div上创建一个图像(closelabel.png),类为“countystats”,作为关闭按钮来隐藏div。我还不能让每个div中的图像都成为可点击的链接。更重要的是,当我点击链接一时,什么也没发生。当我打开两个隐藏的div并试图关闭其中一个时,另一个div关闭(如果我点击'one'和'two'使div出现,然后我点击'a'(用于关闭链接),则另一个div关闭。因此,两个div的按钮关闭一个Javascript 藏错盒子了,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个链接数组,当点击时会显示一个隐藏的div,其中包含与之相关的信息。单击每个链接时,都会显示与之关联的不同div。我试图在每个div上创建一个图像(closelabel.png),类为“countystats”,作为关闭按钮来隐藏div。我还不能让每个div中的图像都成为可点击的链接。更重要的是,当我点击链接一时,什么也没发生。当我打开两个隐藏的div并试图关闭其中一个时,另一个div关闭(如果我点击'one'和'two'使div出现,然后我点击'a'(用于关闭链接),则另一个div关闭。
<style type="text/css">
.county{
color:blue;
display:block;
}
.countystats{
background-image:url('../../../../../closelabel.png') ;
background-position:top right;
border:3px black inset;
background-repeat:no-repeat;
background-color:#ccc;
display:none;
right:250px;
margin: 5px 5px 5px 5px;
padding:5px 5px 5px 5px;
width:200px;
}
</style>
.县{
颜色:蓝色;
显示:块;
}
.countystats{
背景图像:url('../../../../../../closelabel.png');
背景位置:右上角;
边框:3件黑色插页;
背景重复:无重复;
背景色:#ccc;
显示:无;
右:250px;
保证金:5px 5px 5px 5px;
填充物:5px 5px 5px;
宽度:200px;
}
统计一woot
统计数据二
统计数据三
一些其他的东西
甚至更多的其他东西
$('a.county')。每个(函数(e){
$(this).bind('click',函数(e){
var thisIs=$(this.index();$('.countystats').eq(thisIs.show)(250);
});
});
$('a.closediv')。每个(函数(e){
$(this).bind('click',函数(e){
var toClose=$(this.index();$('.countystats').eq(toClose.hide)(250);
});
});
您试图错误地绑定事件处理程序(用于代码所要执行的操作)。此外,只需使用来确定要隐藏的元素
$('a.county').click(function(e) {
var thisIs = $(this).index();
$('.countystats').eq(thisIs).show(250);
});
$('a.closediv').click(function(e) {
$(this).closest('.countystats').hide(250);
});
只需使用parent():
您的问题是对此处的单击处理程序中的
这个有点混淆:
$('a.closediv').each( function(e){
$(this).bind('click', function(e){
var toClose = $(this).index();
$('.countystats').eq(toClose).hide(250);
});
});
您在用来隐藏
的
上调用索引,而不是在
本身上调用
正如其他人所指出的,最简单的解决方案是使用最近的:
$('a.closediv').click(function(e) {
$(this).closest('.countystats').hide(250);
});
没有人注意到你问题的真正根源,所以我想提一下。为什么要使用两个脚本标记?因为我在文本编辑器中这样做,没有任何脚本识别或缩进,我想确保我的大括号和分号正确。顺便说一句,省去你的头疼,使用合适的文本编辑器用于编码。无论操作系统如何,都有大量好的免费程序可供选择。您缺少一个$(文档)。就绪(…)
。。。
$('a.county').click(function(e) {
var thisIs = $(this).index();
$('.countystats').eq(thisIs).show(250);
});
$('a.closediv').click(function(e) {
$(this).parent().hide(250);
});
$('a.closediv').each( function(e){
$(this).bind('click', function(e){
var toClose = $(this).index();
$('.countystats').eq(toClose).hide(250);
});
});
$('a.closediv').click(function(e) {
$(this).closest('.countystats').hide(250);
});