2014-01-14 2 views
0

У меня есть страница, где при нажатии вкладки с текстом вы связаны с другой страницей с расширенным описанием, содержащимся в белом блоке. На этой странице я хочу, чтобы пользователь мог вернуться на предыдущую страницу, щелкнув в любом месте фона (а не на белом блоке). Прямо сейчас, щелкнув в любом месте страницы с расширенными ссылками описания на главную страницу (когда нужно игнорировать клики на белом div, содержащем описание). Вот мой JavaScript:jQuery: странные результаты с использованием селектора «нет»?

$('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. К сожалению, «но» игнорируется.

Спасибо за чтение.

ответ

4

Ваш селектор добавляет обработчик к HTML элемент, который не имеет класс detailwhite, Вместо этого вам нужно

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

Демо: Fiddle

+0

Я изменил код, как вы указали, но теперь это не связь вообще. – Ber

+0

@Ber добавьте его в готовый обработчик dom –

+0

@Ber проверьте обновление –

Смежные вопросы