2012-05-24 61 views
-1

我看过很多帖子在这里的这个处理,但我不能快速得到这个权利。问题与造型选择框

我正在尝试使用自定义图像来设置选择框的样式。我的方式有它设置是设置为opacity:0;选择框,设置在其背后一个div的背景图像,并使用JavaScript来设置DIV中的当前选择的值。我使用Firefox,Chrome和Safari,但在IE中没有运气。

示例1:opacity = 0,没有div的背景图像。事件发生但没有任何可见的事件。

示例2:opacity = 0,div具有我的背景图像。适用于Firefox,Chrome和Safari,但不适用于IE。

示例3:不透明度= 1,div没有背景图像。事件不会触发,正常的选择行为似乎不存在。

示例4:不透明度= 1,div具有我的背景图像。事件不会触发,正常的选择行为似乎不存在。

注意:我从示例3和4中删除了不透明度:1,但仍得到相同的行为。我也是用的50对选择框上的div的z-index和0的z-index以确保他们表现出了背后的选择。相反,似乎没有提供不同的行为。 (“click”).live(“change”).live(“click change”),.on(“click”),.on (“更改”).on(“点击更改”),只要在4个浏览器中进行测试即可。我最终的问题是为什么没有例子2在ie中工作。次要问题是不透明度及其对选择框的影响?我假设的东西与·外观:无我有,但我还是不明白为什么不透明度的问题吧。如果你需要我发布我可以的acctual代码。但你应该能够通过我提供的测试页面看到javascript和css。

+0

实施例2正常工作在IE 9. – WojtekT

+1

实施例2也能正常工作也将被模拟我在IE9。在IE8和更旧的版本中不起作用。或者,你可以把你的选择与背景图像的DIV中,因为我在这个小提琴http://jsfiddle.net/thebabydino/LWJbj/一样 - 它不会在IE8或以上的显示图像,但至少选择将工作。 – Ana

+0

对不起,这样一个迟到的答复。是的,现在我回家了,安装了IE9,看起来示例2工作正常。谢谢你的简单的例子安娜,看来是做什么我所需要的,如果他们的浏览器支持它,然后一切都很好,如果没有则默认为常规的选择框的最佳途径。现在我不认为我可以检查你的答案安娜作为解决方案,因为这是一个评论。如果你可以发表一篇文章重申你在评论中所说的话,我会给你一张支票。谢谢 –

回答

1

你应该巢类似

<div class="styled-dropdown-container"> 
    <select>...</select> 
</div> 

元素然后,您可以在.styled-dropdown-container添加click事件侦听器。事件将从下拉正确propagete(冒泡),并且当用户集中在您的手动输入(通过互联到它IE)