使用此链接,您可以重现该错误.
https://jsfiddle.net/pw7e2j3q/
<script> $( "#test" ).change(function() { $("#test").remove(); var combo = $("<select></select>").attr("id","test2").attr("name","test"); combo.append("<option>New One</option>"); $("#App").append(combo); }); $("#click").click(function(){ $("#App").remove(); }) </script>
如果您点击< select>元素并从dom中删除它,然后单击链接测试.你应该看到旧的< select>元素弹出选择.
是否有一些黑客来解决这个问题?
解决方法
我能够重现这个问题.问题是,每当您尝试删除其更改事件上的选择框时,iOS10都无法正确解除对选择框的绑定.要解决此问题,您需要将代码更改事件代码放在具有一些超时值的setTimeout中.它没有使用零超时值.
以下是您的代码的修复:
<script> $( "#test" ).change(function() { setTimeout( function() { $("#test").remove(); var combo = $("<select></select>").attr("id","test"); combo.append("<option>New One</option>"); $("#App").append(combo); },50); }); $("#click").click(function(){ $("#App").remove(); }) </script>