使用此链接,您可以重现该错误。
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 都无法正确取消绑定(bind)选择框。要解决此问题,您需要将代码更改事件代码放在具有一些超时值的 setTimeout 中。它不适用于零超时值。
http://jsfiddle.net/n62e07ef/
以下是您的代码的修复:
<script>
$( "#test" ).change(function() {
setTimeout( function() {
$("#test").remove();
var combo = $("<select></select>").attr("id", "test2").attr("name", "test");
combo.append("<option>New One</option>");
$("#App").append(combo);
}, 50);
});
$("#click").click(function(){
$("#App").remove();
})
</script>
关于safari - DOM 中不再有 <select> 元素的 iOS 10 Safari 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39557023/