2013-08-21 37 views
1

我有一個chrome擴展,當一個div元素懸停時觸發一個事件。你能阻止動態創建div嗎?

現在,碰撞問題,因爲相同的div元素被用來觸發div的創建和顯示,這干擾了我創建和顯示div的事件。

新事件似乎是由懸停(我無權訪問代碼)來觸發以顯示div。那個div在鼠標離開時關閉。

該代碼將關閉/隱藏DIV,但不會隱藏DIV足夠快,因此是笨重的,至少可以說:

$(this).mousemove(function(e) { 
$(".badpopup").hide(); 
}); 

我只有可用的類的工作。

那麼,有沒有什麼辦法來防止任何div類與.badpopup類創建或隱藏在一個更有效和不笨?

+0

也許[preventDefualt](http://api.jquery.com/event.preventDefault/)? – Itay

回答

2

您可以只設置類隱藏你的滯後問題。

.badpopup { display:none!important; }

還有一個名爲livequery的插件,它將檢測是否創建了一個名爲.badpopup的新彈出窗口,並且可以通過這種方式將其刪除。但是這可能是矯枉過正。你可以使用上面的CSS,像一個30秒的setInterval()。

+0

Yikes!我嘗試的第一件事是'$('。badpopup').css(「display」,「none」)'在腳本中沒有成功。把你的解決方案放在.css和voilà中。謝謝! – user1452893

0

你可以嘗試檢測它是否存在於你的頁面加載函數中,然後隱藏它。我不知道這是否是最有效的方式,但它會解決來自mousemove()

if($('.badpopup').length) { //checks for existence 
$('.badpopup').hide(); 
} 
+0

謝謝,但沒有出於某種原因。 .css方法做到了。 – user1452893