2012-08-30 175 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/