我想检测哪个HTML元素被双击。似乎有些东西在我的代码中不起作用。以下是我的HTML代码结构,您可以双击检测哪个项目被点击。在DOM中双击哪个HTML元素
<div id="mainWrapper">
<div id="Banner" name="Banner" class="editable">This is the banner</div>
<div id="MainMenu" class="editable">This is the main menu</div>
<div id="LeftSideBar" class="editable">This is the submenu or left sidebar content</div>
<div id="MainContent"class="editable">Here is the main content</div>
<div id="RightSideBar" class="editable">Here are commercial ads</div>
<div id="Footer"class="editable">This is the footer
<a href="index.php">Go Home</a>
</div>
</div>
外部JavaScript
window.onload = function(){
// Listen to the double click event.
if (window.addEventListener)
document.body.addEventListener('dblclick', onDoubleClick, false);
}
获取其触发事件的元素。这不一定是事件所附的元素。
function onDoubleClick(ev){
var element = ev.target || ev.srcElement; //target = W3C, srcElement = Microsoft
alert(ev.type); //displays which event has fired
var targ;
if (!ev) var e = window.event;
if (ev.target) targ = ev.target;
else if (ev.srcElement) targ = ev.srcElement;
alert(ev.target); //displays which type of html element has been clicked (it shows div but not which div)
// Find out the div that holds this element.
var name;
do {
element = element.parentNode;
}
while (element && (name = element.nodeName.toLowerCase()) && (name != 'div' ||
element.className.indexOf('editable') == -1) && name != 'body')
alert("The class name for the element is " + element.className); // I get nothing
alert("The node name for the html element is " + element.nodeName);// I get "body"
}
您在事件处理程序附加到DOM,你想这样做的具体的成分? – 2012-02-10 09:57:09