我有一個mouseover事件,它創建了一個工具提示部分div的div,我有我的鼠標。e.StopPropagation()忽略重疊元素
但是,如果鼠標懸停在工具提示上,它會將鼠標移出。我希望它忽略新創建的div,所以它不會觸發mouseout
,除非我將鼠標移出原始div。所以我用e.stopPropagation()
但它似乎沒有解決這個問題。
這是我的代碼:
function ToolTip(e,el,data)
{
e.stopPropagation(); //ignore other elements that overlap
var div = createDiv();
div.style.left = el.offsetLeft + 10 + 'px';
div.style.top = el.offsetTop + 10 + 'px';
div.className = 'ToolTip';
div.innerHTML = 'This is a tooltip!';
document.body.appendChild(div);
function removeToolTip()
{
el.removeEventListener('mouseout',removeToolTip,false);
removeDiv(div);
}
el.addEventListener('mouseout',removeToolTip,false);
}
div.addEventListener("mouseenter",function(e){ToolTip(e,this,data);},false);
有我誤解使用e.stopPropagation()
?
我與該腳本的jsfiddle:http://jsfiddle.net/Lc7t7/
*「我誤解了使用e.stopPropagation()?」*:是的。您正試圖阻止「mouseenter」事件的傳播。而且,無論如何,沒有其他的高級「鼠標」處理程序。詳細的理解,你可以參考[(this)](http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-capture)和[(this) ](http://www.w3.org/TR/DOM-Level-3-Events/#event-flow)。 – Abhitalks
所以,而不是傳播,我應該怎麼做,以防止它發生? – Sir