2012-12-10 18 views
0

我有一個div可以在懸停時切換並在點擊時被鎖定。我試圖添加一個函數,當用戶點擊頁面的其餘部分時,不需要div。取消鎖定文檔中的div點擊

我嘗試使用這樣的:

$(document).on('click', function(e) { 
    if(e.target.id != 'dialog-box'){ 
     $(".dialog-box").hide(); 
    } 
}); 

但是它隱藏在div即使當點擊激活股利。

這裏是jQuery的我用的銷釘:

$(document).ready(function(){ 
    $(".two").hover(function() { 
     if (!$(this).data('pinned')) $(".dialog-box").toggle("slow"); 
    }); 
$(".two").click(function() { 
    $(this).data('pinned', !$(this).data('pinned')); 
    }); 
}); 

這是與我有什麼工作不包括上述第一個腳本小提琴:

http://jsfiddle.net/XXd5t/1/

回答

1

只要停止事件冒泡,當你點擊div時,這樣你就知道點擊事件是否到達文檔,而不是點擊div。

http://api.jquery.com/event.stopPropagation/

$(document).on('click', function(e) { 
    $(".dialog-box").hide(); 
}); 

$(".two").click(function(e) { 
    e.stopPropagation(); 
    $(this).data('pinned', !$(this).data('pinned')); 
}); 
+0

不工作。它產生與我第一次做的相同的結果,顯示懸停的div,隱藏點擊觸發div。實際上,如果我把它放在小提琴裏,它甚至不允許釘住。 http://jsfiddle.net/XXd5t/3/ – ryanSrich

+0

@ rsr9000我寫的函數應該取代你的函數。 –

+0

對不起,我誤解了你的意思。你的功能正在取代什麼功能?你可以編輯小提琴的清晰度? – ryanSrich