Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 藏错盒子了_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 藏错盒子了

Javascript 藏错盒子了,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个链接数组,当点击时会显示一个隐藏的div,其中包含与之相关的信息。单击每个链接时,都会显示与之关联的不同div。我试图在每个div上创建一个图像(closelabel.png),类为“countystats”,作为关闭按钮来隐藏div。我还不能让每个div中的图像都成为可点击的链接。更重要的是,当我点击链接一时,什么也没发生。当我打开两个隐藏的div并试图关闭其中一个时,另一个div关闭(如果我点击'one'和'two'使div出现,然后我点击'a'(用于关闭链接),则另一个div关闭。

我有一个链接数组,当点击时会显示一个隐藏的div,其中包含与之相关的信息。单击每个链接时,都会显示与之关联的不同div。我试图在每个div上创建一个图像(closelabel.png),类为“countystats”,作为关闭按钮来隐藏div。我还不能让每个div中的图像都成为可点击的链接。更重要的是,当我点击链接一时,什么也没发生。当我打开两个隐藏的div并试图关闭其中一个时,另一个div关闭(如果我点击'one'和'two'使div出现,然后我点击'a'(用于关闭链接),则另一个div关闭。因此,两个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);
});