Javascript e通过手动轮询select控件上的selectedIndex属性来修复它。这样,只要您“选中”列表中的项,它就会立即激发。下面是我编写的jQuery插件: $.fn.quickChange = function(handler) { return this.each(function() { var self = this; self.qcindex = self.selectedIndex; var interval; function handleChange() { if (self.selectedIndex != self.qcindex) { self.qcindex = self.selectedIndex; handler.apply(self); } } $(self).focus(function() { interval = setInterval(handleChange, 100); }).blur(function() { window.clearInterval(interval); }) .change(handleChange); //also wire the change event in case the interval technique isn't supported (chrome on android) }); };

Javascript e通过手动轮询select控件上的selectedIndex属性来修复它。这样,只要您“选中”列表中的项,它就会立即激发。下面是我编写的jQuery插件: $.fn.quickChange = function(handler) { return this.each(function() { var self = this; self.qcindex = self.selectedIndex; var interval; function handleChange() { if (self.selectedIndex != self.qcindex) { self.qcindex = self.selectedIndex; handler.apply(self); } } $(self).focus(function() { interval = setInterval(handleChange, 100); }).blur(function() { window.clearInterval(interval); }) .change(handleChange); //also wire the change event in case the interval technique isn't supported (chrome on android) }); };,javascript,iphone,web-applications,mobile-safari,mobile-website,Javascript,Iphone,Web Applications,Mobile Safari,Mobile Website,您使用它就像使用“更改”事件一样。例如: $("#mySelect1").quickChange(function() { var currVal = $(this).val(); //populate mySelect2 }); 编辑:当您点击选择按钮以选择新值时,Android不会聚焦选择按钮,但它也不会出现与iphone相同的问题。因此,也可以通过连接旧的change事件来修复它。谢谢。。我通过在下一个下拉列表中调用blur()解决了这个问题,当第一个下拉列表的选择被更

您使用它就像使用“更改”事件一样。例如:

$("#mySelect1").quickChange(function() { 
    var currVal = $(this).val();
    //populate mySelect2
});

编辑:当您点击选择按钮以选择新值时,Android不会聚焦选择按钮,但它也不会出现与iphone相同的问题。因此,也可以通过连接旧的
change
事件来修复它。

谢谢。。我通过在下一个下拉列表中调用blur()解决了这个问题,当第一个下拉列表的选择被更改并返回XMLHttpRequest数据时,选择框消失,用户必须触摸第二个下拉列表才能访问它,这导致列表中的项被刷新。。这是一个我不太喜欢的黑客行为。这是一个很好的解决方案,解决了Safari移动网络浏览器(仍然存在于iOS 5上)的一阶故障。但它似乎留下了另一个副作用。现在“微调器”正在填充,但在点击“下一步”或“完成”时,实际下拉列表似乎不会随选择更新,也不会注册。有什么见解吗?此外,修复似乎暂时破坏了Android版本的界面。但后来它成功了。我在发布这篇文章后发现了安卓系统的问题。请参阅上面的“我的编辑和新代码”以了解修复。你能为第一个问题创建一个JSFIDLE吗?啊,是的,这是我的下一步!好节目!我将用JSFiddle重新创建。喜欢移动调试解决方案…感谢您提供此示例。这节省了我很多时间。尽管现在,随着iOS 7的更新,这个解决方案不再有效。我正试图调试你的代码,但到目前为止,还没有任何运气让它在更新的iOS上运行。有人运气好吗?
$("#mySelect1").quickChange(function() { 
    var currVal = $(this).val();
    //populate mySelect2
});