我想知道为什么下面的代码在某些浏览器中工作?即即使click()
函数没有参数,但event
变量存在,并且dosomething
方法在事件触发器对象上被调用?即使没有作为参数传递,为什么'event'变量可用?
$(<selector>).click(function() {
$(event.target).<dosomething>
});
我想知道为什么下面的代码在某些浏览器中工作?即即使click()
函数没有参数,但event
变量存在,并且dosomething
方法在事件触发器对象上被调用?即使没有作为参数传递,为什么'event'变量可用?
$(<selector>).click(function() {
$(event.target).<dosomething>
});
为什么是“事件”变量可用,即使作为一个参数没有通过?
它不可靠。例如,该代码将在Firefox上失败。
微软使用了一个全球event
变量。 DOM2将其定义为处理程序的参数。 Chrome决定将特定于MS的代码放在骨头上,然后执行这两个操作。 Firefox没有。
即使在代码工作的浏览器上,请注意event
将是一个原始事件对象,而不是jQuery增强的对象。这意味着,例如,在IE8上,您不能拨打event.preventDefault
,因为IE8不提供该功能。 jQuery会如果你接受了这个参数,因为即使在缺少这些特性的浏览器上,jQuery也提供了一个具有标准化特性的事件对象。
感谢您的信息:),不知道这一点 – Tushar
_global_'event'。尝试控制台 – Tushar
中的“事件”,并不能解释它为什么只在某些浏览器/版本中才起作用 –
@SergeyPauk:这是一个微软公司。 – Amadan