1
$('fltr1').onfocus = function() {
                    $('fltr1').setStyle({width: "auto"});
                } 

使用 Prototype.js,我试图让一个 IE7 兼容的下拉菜单框在用户单击它时将其宽度更改为自动。就像现在一样,当用户单击此框时,它成功扩展了它的宽度,但是直到您再次单击该框才打开,需要单击 2 次。第一次单击会展开,第二次单击会打开允许您选择项目的框。就像第一次单击触发设置宽度事件,然后停止其他所有内容并强制关闭下拉菜单。我试过onclick,它做同样的事情,调整宽度但关闭下拉菜单,直到你第二次点击。

我怎样才能阻止这需要两次点击?设置宽度时导致下拉菜单关闭的原因是什么?

4

1 回答 1

0

我认为您无法使用当前在 IE7 中的方法来完成这项工作。当浏览器重新绘制选择框时,它会关闭下拉菜单。您认为可以使用单击事件手动重新打开它,但使用本机选择框则不可能,请参阅此讨论: How can you programmatically tell an HTML SELECT to drop down(例如,由于鼠标悬停)?

作为一种解决方法,您可以将调整大小移动到鼠标悬停事件?如果您想保留其他浏览器中的行为,也许仅适用于 IE7?

$('fltr1').onmouseover = function() {
    this.setStyle({width: "auto"});
}
于 2012-10-31T18:03:35.677 回答