[英]IE is acting inconsistently with a jQuery change/ajax event
我正在开发一个相当简单的演示应用程序。 使用slideDown()
连续显示三个输入下拉框(这是在前一个下拉列表的change()
上触发),并且一个使用AJAX请求来确定下一个值的值。
这在Chrome和Firefox中完美无缺,但IE(甚至9)在第二个下拉列表上窒息 - 执行AJAX请求的下拉列表。
因为代码比单词更响亮:
$('#specialty').change(function() {
if ( $(this).val() !== "(please select an option)" ) {
$.ajax({
type: "GET",
url: "getValidToppings.php",
data: { location: $(this).parent().prev().children('select').val() }
}).done(function(data) {
var mytoppings, toppingsSelectBox;
console.log('return values: ' + data);
data = $.parseJSON(data);
toppingsSelectBox = $('#toppings');
toppingsSelectBox.empty();
// we use the value from the select box as a key in the dict of toppings returned
// from the AJAX call
mytoppings = data[$('#specialty').val()];
toppingsSelectBox.append('<option>(please select an option)</option>')
for (i in mytoppings) {
toppingsSelectBox.append("<option>"+mytoppings[i]+"</option>");
}
toppingsSelectBox.parent().slideDown('slow', 'linear');
});
}
});
您可以看到,当我更改此下拉列表(其中id="specialty"
.toppings
id="specialty"
)时,通过AJAX(在JSON中)返回的值应该填充.toppings
输入,然后显示它(使用slideDown()
)。 但是,在IE中......没有骰子。
真正值得一提的是,如果我启动IE的开发工具并开始修改Javascript(设置断点,使用控制台等),它就会按预期开始工作。 即使我只打开开发工具,只要该窗口打开,它就会开始工作。 有没有搞错?
这里发生了一些奇怪的事情。 有任何想法吗?
IE不知道“控制台”是什么,除非您打开开发工具。 取出console.log
你应该很好。 还要确保你没有遗漏任何分号,IE往往不喜欢这样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.