JQuery переключить клик исключить дочерние ссылки - PullRequest
1 голос
/ 25 марта 2012

Я пытаюсь открыть окно, когда щелкают div или любой из его дочерних элементов первого уровня, за исключением одного тега A, который находится в дочернем div.

Я просто переключаю классы, чтобы показать / скрытьDiv, который прекрасно работает.Тем не менее, когда ссылка нажата, окно все еще всплывает, что я не хочу.Я рассмотрел использование цели и остановки, но не могу заставить его работать с моим кодом.

jQuery:

jQuery(document).ready(function() {
    jQuery(".video_odd").toggle(function()
    {
    jQuery(this).children(".video_desc_box").attr('class', 'video_desc_box_open');
    },
    function(){
    jQuery(this).children(".video_desc_box_open").attr('class', 'video_desc_box');
    });
});

Быстрый обзор HTML : video_odd - это класс, который при нажатии на него заставляет его дочерний элемент div video_desc_box переключать свой класс на video_desc_box_open, который вместо встроенного переключает отображение на встроенное, а не на одно.заставить этот скрипт не запускаться при нажатии на ссылку, которая является div внутри video_odd.

Я хочу, чтобы он менял классы при нажатии на любую другую детку, но не на дочернюю ссылку 2-го уровня.

Спасибо за помощь!

РЕДАКТИРОВАТЬ: Я думаю, что я все ближе:

jQuery(".video_odd").toggle(function(e)
{
if (e.target == jQuery(this).children(".video_list_title")) { return; }
jQuery(this).children(".video_desc_box").attr('class', 'video_desc_box_open');
},
function(){
jQuery(this).children(".video_desc_box_open").attr('class', 'video_desc_box');
});  

Однако

(e.target == jQuery(this).children(".video_list_title"))

Не регистрируется.Как я могу исключить div video_list_title все вместе (не только ссылку?)

1 Ответ

0 голосов
/ 25 марта 2012

e.target не является jQuery.

$ (e.target) .hasClass ("video_list_title")

Намного ближе!

...