2012-08-30 128 views
1

所以我试图创建一个工具提示,并希望它创建它时,它会添加一个单击事件到身体,以便每当任何事物在身体被点击然后工具提示消失。理论上这会传播,如果用户点击一个链接,那么工具提示会消失,用户将前往链接指向的任何地方。点击点击删除

我遇到的问题是出于某种原因以下不起作用。即使在我点击任何地方之前,我都会收到“这里”,它会在创建后几乎直接触发工具提示移除,因此不会出现工具提示。任何想法如何做到这一点。

$("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,对身体有click事件已经在它,所以它不会允许添加工具提示。从理论上讲,我希望这个问题也消失,所以点击事件会在我点击一次时被删除,但这是一个侧面问题。

感谢

+0

嗯..你确定你希望你的a.click函数内部的document.body的点击功能?每次第一个锚点被点击时,它都会绑定另一个点击事件 –

+0

是的。这只会是一个特定的锚点。以上只是一个简单的例子。 –

回答

0

这是因为当前点击一直没有停止传播,当你添加单击处理身体。

尝试使用event.stopPropagation();

小提琴,供大家参考http://jsfiddle.net/fgRTa/2/