我可能在某个地方犯了一个非常简单的错误,但由于某种原因,事件似乎无法正确冒泡。
这段JavaScript非常简单,目前使用jQuery来轻松操作DOM,但不想依赖它来处理事件。
jQuery(document).ready(function($) {
document.onclick = function(event) {
event = event || window.event;
var target = event.target || event.srcElement;
var target_class= target.className.toLowerCase();
if(target_class.indexOf('test_class') >= 0)
{
$('#log').append('<p>clicked!</p>');
event.preventDefault();
}
}
});
这段代码很简单,与示例相关的HTML同样也是微不足道的。
<a href="" class="test_class">text</a>
<a href="http://www.google.com" class="test_class"><img src="http://img810.imageshack.us/img810/9111/trianglesl.png"></a>
<div id="log">
<h3>Log</h3>
</div>
如您在http://jsfiddle.net/SuBQQ/1/中所见,超链接可以正常工作,而单击图像不会触发正确的事件,而是使用图像上的事件(我认为它会冒泡到DOM上,但显然我错了)。
我是做错了什么,还是只是忽略了一些小细节?