jQuery:使用'not'选择器的奇怪结果?

时间:2014-01-14 10:35:32

标签: javascript jquery html jquery-selectors conditional

我有一个页面,当您单击带有文本的选项卡时,您将链接到另一个页面,其中包含一个包含在白色块中的扩展描述。在此页面上,我希望用户能够通过单击背景中的任何位置(而不是白色块)返回上一页。现在,点击页面上任何地方的扩展说明会链接到主页面(当它应该忽略包含描述的白色div上的点击时)。这是我的javascript:

$('html:not(.detailwhite)').mousedown(function(e) {
    document.location.href="index.html";
    e.stopPropagation();
});

这是我的HTML:

<!DOCTYPE html>
<html>
<head>
    <title>Group details</title>
    <!--library files-->
    <script src="lib/jquery_min.js"></script>
    <!--stylesheets-->
    <link rel="stylesheet" type="text/css" href="style/detailstyle.css">
    <!--javascript-->
    <script type="text/javascript" src="js/interactive.js"></script>
</head>

<body class="detailbg">

<div class="detailwhite">
    <h1 class="name">Group Name</h1>
    <img class="pic" src="style/testPic300x200.png" alt="Group picture"/>
    <p class="description">Here's the detailed description of the group.<p>
</div>

</body>
</html>

摘要:点击任何内容但是'detailwhite'div应该将用户链接回index.html。不幸的是,'但'被忽略了。

感谢阅读。

1 个答案:

答案 0 :(得分:4)

您的选择器正在将处理程序添加到没有类detailwhite的html元素中,而是需要

jQuery(function ($) {
    $(document).mousedown(function (e) {
        document.location.href = "index.html";
        e.stopPropagation();
    });
    $('.detailwhite').mousedown(function (e) {
        e.stopPropagation();
    });
})

演示:Fiddle