Javascript div上的关闭按钮不工作

Javascript div上的关闭按钮不工作,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一组div,我想在点击后显示,然后在右上角用一个“X”img结束。我的问题是,单击div中的任何位置都会导致它关闭,而不仅仅是右上角的X。我还想让“X”成为一个链接,这样当它悬停在光标上时会发生变化。代码如下,谢谢 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xml

我有一组div,我想在点击后显示,然后在右上角用一个“X”img结束。我的问题是,单击div中的任何位置都会导致它关闭,而不仅仅是右上角的X。我还想让“X”成为一个链接,这样当它悬停在光标上时会发生变化。代码如下,谢谢

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

<style type="text/css">
.county{
    color:blue;
    display:block;

}
.countystats{
    background-image:url('../defunkt-facebox-cbe32e1/examples/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>

</head>

<body>
<div style="height:250px;bottom:300px; width:100px; padding: 1em; overflow:auto; margin:5px 5px 5px 5px; border: 2px black;  overflow-x:hidden;">

    <a class="county" href="#">one</a>
    <a class="county" href="#">two</a>
    <a class="county" href="#">three</a>
    <a class="county" href="#">four </a>
    <a class="county" href="#">five</a>
    <a class="county" href="#">six</a>



</div>
<div class="countystats">stats one<input maxlength="20" size="14" type="password"/><br/><p>woot</p></div>
<div class="countystats">stats two</div>
<div class="countystats">stats three</div>
<div class="countystats">some other stuff</div>
<div class="countystats">even more other stuff</div>



<br />
<br />
 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
$('a.county').each( function(e){
        $(this).bind('click', function(e){ 
            var thisIs = $(this).index(); $('.countystats').eq(thisIs).show (250); 
            });
    $("img").hide();
    $(".countystats").click(function () {
      $(this).hide(250);
      return true;});


});
</script>
</body>
</html>

无标题文件
.县{
颜色:蓝色;
显示:块;
}
.countystats{
背景图像:url('../defunkt-facebox-cbe32e1/examples/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); }); $(“img”).hide(); $(“.countystats”)。单击(函数(){ $(此).hide(250); 返回true;}); });
它的行为是这样的,因为您正在通过选择器选择整个div。相反,将嵌套div集添加到X图像的大小,将其向右浮动,并将close事件绑定到该图像。如果使用浮动或相对定位,应该能够避免弄乱布局的其余部分


编辑:更好的是,尝试jqueryUI对话框小部件。它或多或少地完全符合您的要求,并自动处理关闭功能。

它的行为是这样的,因为您是通过选择器选择整个div的。相反,将嵌套div集添加到X图像的大小,将其向右浮动,并将close事件绑定到该图像。如果使用浮动或相对定位,应该能够避免弄乱布局的其余部分


编辑:更好的是,尝试jqueryUI对话框小部件。它或多或少地实现了您想要的功能,并自动处理关闭功能。

您可以识别元素内部的单击位置,如果与关闭区域的位置匹配,则隐藏元素

这方面的代码是:

var _closeButtonWidth = 50;
var _closeButtonHeight = 20;

$(".countystats").click(function(event) {
    event = event || window.event;
    var xPos = event.offsetX || event.clientX - $(this).offset().left;
    var yPos = event.offsetY || event.clientY - $(this).offset().top;
    var width = $(this).width();
    var height = $(this).height();
    if (xPos >= (width - _closeButtonWidth) && yPos <= (height - _closeButtonHeight)) {
        $(this).hide();
    }
});
var\u closeButtonWidth=50;
var _closeButtonHeight=20;
$(“.countystats”)。单击(函数(事件){
event=event | | window.event;
var xPos=event.offsetX | | event.clientX-$(this).offset().left;
var yPos=event.offsetY | | event.clientY-$(this.offset().top;
var width=$(this.width();
var height=$(this.height();

如果(xPos>=(width-_closeButtonWidth)&&yPos,您可以识别单击在元素内部发生的位置,如果匹配闭合区域的位置,则隐藏元素

这方面的代码是:

var _closeButtonWidth = 50;
var _closeButtonHeight = 20;

$(".countystats").click(function(event) {
    event = event || window.event;
    var xPos = event.offsetX || event.clientX - $(this).offset().left;
    var yPos = event.offsetY || event.clientY - $(this).offset().top;
    var width = $(this).width();
    var height = $(this).height();
    if (xPos >= (width - _closeButtonWidth) && yPos <= (height - _closeButtonHeight)) {
        $(this).hide();
    }
});
var\u closeButtonWidth=50;
var _closeButtonHeight=20;
$(“.countystats”)。单击(函数(事件){
event=event | | window.event;
var xPos=event.offsetX | | event.clientX-$(this).offset().left;
var yPos=event.offsetY | | event.clientY-$(this.offset().top;
var width=$(this.width();
var height=$(this.height();

如果(xPos>=(width-\u closeButtonWidth)和&yPos,你在任何角落都没有x…在countystats类中有一个背景图像。closelabel.png就是我说的x…对不起!你在任何角落都没有x…在countystats类中有一个背景图像。closelabel.png就是我说的x…对不起!