用原型选择按钮的例外

时间:2013-03-01 08:04:07

标签: javascript prototypejs

我的html标题有:

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

在javascript中我使用:

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

在除IE9,10之外的所有浏览器中,它都非常完美。 在IE9,10中,第一次调用函数是正常的,但是接下来失败是因为$$返回“undefined”并且调用show()破坏了代码。

更新项目中包含的原型1.6.0.2。

1 个答案:

答案 0 :(得分:1)

这有两个修复 - 第一个是直接修复

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

这将遍历与CSS选择器匹配的所有元素并在其上运行show()

仅在.buttons

中只有一个类#score-window的元素时才使用此选项

这会起作用而不会抛出错误,好像没有与选择器匹配的元素不会触发invoke()

第二个修复我会检查元素是否存在然后显示

if($$('#score-window .buttons').length > 0) {
    $$("#score-window .buttons")[0].show();
}

这些修复将直接修复错误 - 但是我认为你有一个不同的核心问题需要深入研究,以找出CSS选择器第二次没有找到元素的原因。此外,如果您能够升级到PrototypeJS 1.7.1。