Javascript IE中的点击处理
我有以下设置: Js原型库 具有onclick事件的范围,该事件调用以下类型的函数:Javascript IE中的点击处理,javascript,html,internet-explorer,prototypejs,prototype,Javascript,Html,Internet Explorer,Prototypejs,Prototype,我有以下设置: Js原型库 具有onclick事件的范围,该事件调用以下类型的函数: function onClickSuperFunction() { alert('Super function called'); // Bla bla bla many epic things if (someCondition) { $('selectorForSameSpan').click(); // selectorForSameS
function onClickSuperFunction() {
alert('Super function called');
// Bla bla bla many epic things
if (someCondition) {
$('selectorForSameSpan').click();
// selectorForSameSpan is a selector for the element that was originally clicked (first click is manunal)
}
}
在除IE以外的所有浏览器中,一切都正常。在IE中,不会触发单击(在我手动单击元素时触发,但不会触发来自“if”的事件)
另外,如果我更改选择器并模拟单击任何其他元素($('AnyOtherSpanExample')),它工作正常(调用该函数)
所以。。。IE是否阻止自动点击同一元素?也许是反垃圾邮件什么的?而且。。。有工作吗?我真的需要那个点击
注意:如果我使用原型“fire”,同样的情况也会发生
感谢您的帮助。PrototypeJS默认情况下不支持触发本机浏览器事件 将Event.simulate添加到页面中,它将允许您在PrototypeJS支持的所有浏览器中触发本机事件 计划中将Event.simulate集成到核心中,同时这里是Github的要点
Ty,还是。。。为什么本地呼叫不起作用?通常我会问为什么只有IE很烂但是。。。我已经问过自己很多次了……根据IE的版本,它可能没有元素上的
click()
方法,而是列在事件缓存中。simulate方法为您找到了答案,并从正确的位置启动它。我知道,这是一个很好的解决方案(因此为+1),但不幸的是,我需要批准新的LIB,这通常需要很长时间。因此,在他们批准之前,我需要完成本机。我建议看一下Event.simulate中的代码,并使用它在IE中触发本机事件。这实际上是个好主意。而且也是唯一体面的,所以我接受你的回答。