我有这个jQuery代码:
$('*').mouseover(function()
{
$('#log').text($(this)[0].tagName);
});在我的页面中,我有一堆元素,还有一个id为"log“的DIV。当用户将鼠标移到任何元素上时,我希望它们的元素名称(例如p或h2)出现在#log中。但是每当我将鼠标移到任何东西上时,它都会返回HTML。我该如何解决这个问题?
发布于 2011-04-07 22:30:02
尝试:
$('*').mouseover(function(evt)
{
$('#log').text($(this)[0].tagName);
evt.stopPropagation();
});我认为,你的问题是,事件在链中向上传播,直到它到达<html>,并在那里停止。这应该会对此有所帮助。
编辑:它也可能有助于缩小范围,即$('#container > *')。
发布于 2011-04-07 22:30:59
这是因为所有的事件都会冒泡到正在处理它们的html。
试试这个。
$(document).mouseover(function(event) {
$('#log').text(event.target.tagName);
});现在,您只需附加一个事件,并让它们全部冒泡到document,在那里它们将被处理。
发布于 2011-04-07 22:31:01
试试这个:
$('*').bind('mouseover', function(e) {
e.stopPropagation();
$('#log').text($(this)[0].tagName);
}https://stackoverflow.com/questions/5582707
复制相似问题