2013-03-28 78 views
2

我做了一個jQuery/CSS彈出樣式Div。 div的內容通過ajax-request加載並放入.ajax_popup_wrapper!jQuery/CSS/AJAX Popup樣式DIV在結果包含div時關閉

當您將鼠標懸停在TIPP上時,創建div並附加到「BODY」。 (.ajax_popup_wrapper_wrapper)

我用在div功能這些行:(!如果不是 - >關閉)

$('.ajax_popup_wrapper_wrapper').mouseout(function(){ 
     // REMOVE DIV's 
}); 

檢查鼠標是否在.ajax_popup_wrapper_wrapper或不

這如果ajax_popup_wrapper只包含文本和圖像(或類似的東西!如果結果包含另一個div(在圖中:RESULT DIV),那麼您不能懸停此RESULT DIV,因爲.ajax_popup_wrapper_wrapper被移除。結果DIV應該覆蓋wrapper_wrapper,但必須仍然可以點擊!

我試圖把wrapper_wrapper對結果DIV的頂部和工程(股利是不會被關閉!),但我不能點擊的結果DIV中的鏈接..

這很奇怪,請幫助我! 謝謝!

編輯:我加了的jsfiddle例 http://jsfiddle.net/dH55F/19/

enter image description here

+0

沒有你儘量讓'wrapper_wrapper'透明的,當它是頂部'結果div'? –

+0

嗨,我試着用不透明的,但它不起作用。結果DIV不可點擊。 – elasticman

+0

您可以在[jsfiddle](http://jsfiddle.net/)中添加代碼和最小測試用例 –

回答

0

使用這樣,

var mouse_is_inside = false; 
$(document).ready(function() 
{ 
    $('.ajax_popup_wrapper_wrapper').hover(function(){ 
     mouse_is_inside=true; 
    }, function(){ 
     mouse_is_inside=false; 
    }); 


}); 

編號:see this

+0

好的,問題解決了!感謝你們! – elasticman

+0

這是答案解決你的問題? – Dhamu

+0

你的答案是答案:) – elasticman

0

檢測,如果我們動了我們的鼠標放到該元素有一個類[希望你可以在它的內部標識添加到div],如果是,則返回false,否則,只需執行正常的刪除代碼即可。

$('.ajax_popup_wrapper_wrapper').mouseout(function(e){ 
    if($(e.toElement).hasClass('other')){ 
     return false; 
    } 
    //do your remove code here 
}); 

我不知道,如果要素正在從DOM完全去除,所以下面的代碼代表的事件處理程序的任何元素與類的other,在的時候存在於DOM樹點擊;不管在DOM準備好之後是否添加它。我們使用.stopPropagation()

$(document).on('mouseout', '.other', function(e){ 
    e.stopPropagation(); 
}); 

通知,我們這樣做,所以它不會隨意開槍的.ajax_popup_wrapper_wrapper.mouseout()功能。

Theoretical implementation (jsFiddle)

+0

嗨,在你的例子中,當你將鼠標懸停在紅色的窗口上時,綠色的div會關閉。但它應該保持開放! – elasticman

0

問題解決了!謝謝!

我不得不改變的唯一的事情,就是去掉鼠標移開(),並用鼠標離開()代替它...

$('.ajax_popup_wrapper_wrapper').mouseleave(function(){ 
// remove div