我想知道为什么以下代码在某些浏览器中有效?即使click()函数没有参数,但是event存在变量并且dosomething在事件触发器对象上调用方法?
$(<selector>).click(function () {
$(event.target).<dosomething>
});
Run Code Online (Sandbox Code Playgroud)
T.J*_*der 19
为什么即使未作为参数传递,'event'变量也可用?
它不可靠.例如,该代码将在Firefox上失败.
Microsoft使用了一个全局 event变量.DOM2将其定义为处理程序的参数.Chrome决定将特定于MS的代码作为一个骨头并同时执行这两项操作.Firefox没有.
即使在代码工作的浏览器上,请注意这event将是一个原始事件对象,而不是jQuery增强的对象.这意味着,例如,在IE8上你无法调用,event.preventDefault因为IE8不提供该功能.jQuery如果你接受了这个参数,因为jQuery提供了一个具有标准化功能的事件对象,即使在缺少这些功能的浏览器上也是如此.
| 归档时间: |
|
| 查看次数: |
2122 次 |
| 最近记录: |