jQuery单击检测指定区域之外的问题

时间:2010-08-21 23:17:28

标签: javascript jquery click

嘿伙计们,好的,所以,我的主页上隐藏了一个jPlayer jQuery插件播放列表(http://www.marioplanet.com)。

现在,它默认是隐藏的,只有在点击标题<div>右上角标有“音乐”的图片时才会激活。

这非常有效,一旦最终用户点击了图片,<div id="player">元素就会发生漂亮,漂亮的slideToggle操作,并显示出来。

现在,一切都有。

直到最终用户再次点击音乐图片以外的任何地方,<div id="player">元素将再次滑动切换,消失。

唯一的问题是,当最终用户再次点击音乐图片时,因为据我所知,它滑动了两次!

这绝对不是我们想要的。

所以,这是由Magnar的有用帖子改编的代码:

$('#text_music').click(function() {
    $('#jplayer').slideToggle(500, function() {
        $("body").click(function (event) {
            var outside = $(event.originalTarget).parents("#popup").length === 0;
            if (outside) {
                $("#jplayer").slideToggle(500);
                $("body").unbind("click");
            }
        });
    });
});

#text_music是我的图片阅读“音乐”
#jplayer是我的<div>,其中包含我的jPlayer插件

所以,我想要尝试做的是声明一个变量,就像在上面的代码中声明var outside的方式一样,只需#text_music一次#jplayer <div>图像处理已经可见了。

但是,我需要一些帮助来理解这个变量的含义。

有人想提供任何智慧的话语吗?

:)谢谢!

1 个答案:

答案 0 :(得分:2)

查看jQuery outside events plugin以检测特定元素之外的事件。