IE中奇怪的JavaScript消息
Weird JavaScript message in IE
在IE
中获取.stopPropagation()
的奇怪错误
我的代码如下:
$(document).ready(function(){
var options = {
$this: "",
$menuItems: $(".mainMenu > li"),
$blueBar: $(".blueBar"),
$submenuBg: $("#submenuBg"),
$sortOptions: $(".sortOptions"),
$submenu: $(".submenu"),
submenuClass: ".submenu",
blueBarClass: ".blueBar",
selectedClass: "selected",
sortOptionsClass: ".sortOptions",
subSubmenu: "ul",
subSubmenuClass: "sub-submenu"
};
$sortBy.toggle(function(){
options.$this = $(this);
ddlShow(event, options);
},
function(){
options.$this = $(this);
ddlHide(options);
}
);
});
var ddlShow = function(event, options){
event.stopPropagation();
options.$this.children(options.sortOptionsClass).show();
}
var ddlHide = function(options){
options.$this.children(options.sortOptionsClass).hide();
}
得到以下错误:
对象不支持属性或方法"stoppropagation"
代码在Chrome和Firefox中运行良好。
我该如何解决此问题?
注意:如果没有object options
,同样的代码也可以正常工作。
在IE中,我们在事件对象的javascript中没有可用的stopPropagation方法。如果你在谷歌上搜索,你会在基于ie和webkit的浏览器中找到不同的事件对象实现。因此,为了纠正jQuery提供了一个单独的接口来处理它,所以您应该使用jQuery处理事件的方式来停止出现这种错误。
你可以阅读这篇文章来获得更多的澄清http://www.quirksmode.org/js/introevents.html
替换 e.stopPropagation();
if (e.stopPropagation) e.stopPropagation(); else e.cancelBubble = true;
为我工作
感谢
让toggle
处理程序接受来自jQuery:的事件参数
$sortBy.toggle(function(event){ // ADDED PARAMETER
options.$this = $(this);
ddlShow(event, options);
},
如果不执行此操作,那么在调用ddlShow
时,参数event
将解析为window.event
,这是一个未被jQuery"规范化"以实现跨浏览器一致性的对象。
此处:
$sortBy.toggle(function(){ <-- you must get the event object from jquery.
options.$this = $(this);
ddlShow(event, options);
},
function(){
options.$this = $(this);
ddlHide(options);
}
);
然后:
$sortBy.toggle(function(event){ ... ddlShow(event, options); }...
$sortBy.toggle(function(event){
// Do your stuff here
})
此外,不建议使用event
作为参数名称。
event
是指全局事件对象。定义类似e
的内容
function(e, options){
e.stopPropagation();
//do stuff here
}
相关文章:
- JavaScript消息系统加密
- IE中奇怪的JavaScript消息
- 清除来自VBA的Javascript消息框
- 已启用 JavaScript 消息
- asp.net javascript 消息未显示
- 确实存在一种重定向和显示 javascript 消息的方法
- 如何从android webview获取Javascript消息
- 将 JavaScript 消息传递给 CSHARP
- IE8中的Javascript消息超出堆栈空间
- 如何对来自javascript消息的文本进行硬编码
- 将HTML放入自定义javascript消息框中
- 当使用UPDATE PANEL时,应用程序不显示javascript消息
- 如何改变javascript消息框编码器的条件
- 抑制WebBrowser JavaScript消息错误
- 如何在我的webOS应用程序中显示此JavaScript消息
- asp和javascript消息提醒不会;不起作用
- iframe中的Javascript消息
- 返回到视图以及 laravel 中的 javascript 消息
- 使用 JSF 从资源包传递本地化的 JavaScript 消息
- Rails 设置一个 Cookie 以确保只收到一次 Javascript 消息