【问题标题】:jquery toggle click exclude children linksjquery 切换单击排除子链接
【发布时间】:2012-04-08 22:48:10
【问题描述】:

我试图在单击 div 或其任何第一级子级时弹出一个框,不包括子 div 中的一个 A 标记。

我只是切换类来显示/隐藏效果很好的 div。但是,当单击链接时,仍然会弹出我不想要的框。我已经研究过使用 target 和 stoppropagation 但我无法让它与我的代码一起使用。

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,这会将显示更改为内联而不是无。

我只是不明白如何使用切换来使该脚本在单击链接时不运行,该链接是 video_odd 中的一个 div。

我希望它在单击任何其他子项时更改类,而不是第二级子链接。

感谢您的帮助!

编辑:我想我越来越近了:

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 一起(不仅仅是链接?)

【问题讨论】:

    标签: jquery hyperlink toggle stoppropagation


    【解决方案1】:

    e.target 不是 jQuery。

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

    更近了!

    【讨论】:

    • 很高兴您也在 jQuery 论坛上提问。我不经常在这里检查。我需要这里的积分!
    猜你喜欢
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多