我在一个项目上工作,仅限于通过内联处理程序(如onclick
和onchange
)处理JavaScript事件。但是,我需要我的处理程序是跨浏览器的。我习惯于使用jQuery,但由于我不能使用$('#id').click(function() { ... })
我在访问jQuery风格的事件时遇到了一些困难。在内联JavaScript处理程序中使用jQuery事件
例如,我想这样做:
<table>
<tr onclick="if (event.target.tagName.toLowerCase() !== 'td') return false; ...">
<td>...</td>
<td>...</td>
<td><a>...</a></td>
<td><a>...</a></td>
</tr>
</table>
基本上,这个代码应该只处理的细胞在表中没有任何锚子元素的点击次数。
这适用于Firefox和Chrome以及几乎所有使用W3C事件的浏览器。不幸的是,在IE中,它不起作用。
我希望做的是一样的东西:
if ($.Event(event).target.tagName.toLowerCase() !== 'td') return false; ...
对于onclick
处理程序,但现在看来,当你在jQuery的这种方式包装的事件,它不提供target
场。
我在做什么错?
为什么绝对有必要做这个内联?你不能把script标签放在html的某个地方吗? – treeface 2010-09-17 16:27:21