我刚刚问了这个问题an hour ago但是关于IE8,我被告知JQuery Live处理程序不支持“更改”所以我切换到“点击”,这解决了我的问题,现在我发现Safari因为某些奇怪的原因无法点击,有人知道为什么吗?
所以我想我可以同时拥有两个吗?
$('select.htt, select.hst').live('click', function() {
var channels = parseInt($('#fancy_div select.hst').val(), 10) * parseInt($('#fancy_div select.htt').val(), 10);
$('#fancy_div span.yellow2').html(channels + ' Channels');
});
改变(适用于野生动物园)
$('select.htt, select.hst').live('change', function() {
var channels = parseInt($('#fancy_div select.hst').val(), 10) * parseInt($('#fancy_div select.htt').val(), 10);
$('#fancy_div span.yellow2').html(channels + ' Channels');
});
还是有更优雅的东西?
也许我可以做一个有条件的。 if ($.browser.msie
但是我如何使用上述方法执行此操作,上面的内容也是$(document).ready(function()
答案 0 :(得分:4)
试试这个:
$('select.htt, select.hst').live($.browser.msie?'click':'change', function() { ....
答案 1 :(得分:3)
您似乎遇到了一系列问题:
change
event does not bubble in IE,而click
事件click
event does not fire/buuble on <select>
/<option>
elements in Safari,而change
事件我不确定你的情况最好的前进方式。
答案 2 :(得分:1)
更改事件不应在任何浏览器中冒泡。
只要将菜单添加到DOM,我就会让你的代码重新绑定更改处理程序,或者如果服务器脚本生成它,甚至可以在select中添加onchange属性。
答案 3 :(得分:0)
阅读错误列表(http://bugs.jquery.com/ticket/5677),将以下CSS添加到元素中也是一个解决方案:
<style>
element {
cursor : pointer;
}
</style>
适用于带有safari的iphone4