单击单击删除

时间:2012-08-30 16:28:13

标签: jquery click event-bubbling

所以我正在尝试创建一个工具提示,并希望它在创建它时会向主体添加一个click事件,这样无论何时单击身体上的任何内容,工具提示就会消失。从理论上讲,这会传播,如果用户点击链接,工具提示就会消失,用户将前往链接所指向的任何位置。

我遇到的问题是由于某种原因以下不起作用。我甚至在点击任何地方之前就得到了'here',它在创建后几乎直接触发工具提示删除,因此不会出现工具提示。关于如何做到这一点的任何想法。

    $("a").click(function(event){
        event.preventDefault();
        $(document.body).click(function(){
            $('.tooltip').remove();
            console.log('here');
        })

        var text = $(this).attr('title');
        var tooltip = $('<div class="tooltip">' + text + '</div>');
        $(document.body).append(tooltip);
    });

这是一个JS小提琴:http://jsfiddle.net/fgRTa/你应该先点击链接2看它是否有效,否则如果你做链接1然后链接2,身体上已经有点击事件,所以它不会允许添加工具提示。从理论上讲,我希望这个问题能够消失,所以当我点击一次时点击事件会被删除,但这是一个副作用。

由于

1 个答案:

答案 0 :(得分:0)

这是因为当你将点击处理程序添加到正文时,当前的点击没有停止传播。

尝试使用event.stopPropagation();

小提琴,供您考虑http://jsfiddle.net/fgRTa/2/