异常选择带有原型的按钮

Exception selecting buttons with prototype

本文关键字:按钮 原型 选择 异常      更新时间:2023-09-26

我的html头有:

<meta http-equiv="X-UA-Compatible" content="IE=7" >

在javascript中我使用:

showButtons: function() {
    $$("#score-window .buttons")[0].show();
},

在除IE9、10以外的所有浏览器中,它都可以完美地工作。在IE9中,第一次调用函数是OK的,但下一次调用失败,因为$$返回"undefined"并且调用show()会破坏代码。

更新原型1.6.0.2包含在项目中

有两种修复方法:第一种是直接修复

$$('#score-window .buttons').invoke('show');

这将遍历所有与CSS选择器匹配的元素,并对它们运行show()

仅当在#score-window

中只有一个类为.buttons的元素时使用

这将工作并且不会抛出错误,如果没有与选择器匹配的元素,它将不会触发invoke()

第二种修复方法是检查元素是否存在,然后显示它
if($$('#score-window .buttons').length > 0) {
    $$("#score-window .buttons")[0].show();
}

这些修复将直接修复错误-但是我认为你有一个不同的核心问题,你需要深入了解为什么CSS选择器第二次找不到元素。另外,如果你能够升级到PrototypeJS 1.7.1.