显示奇怪行为的jQuery隐藏
我遇到了一个jQuery问题,这是我以前没有见过的。我的脚本隐藏了某些包装,这在Firefox和Chrome中有效,但在IE中不起作用。奇怪的是,当我打开IE控制台并刷新页面以查看日志时,它也会按照我的预期工作。它只在开发者工具打开的情况下刷新时修复 以下是控制台代码段:显示奇怪行为的jQuery隐藏,jquery,Jquery,我遇到了一个jQuery问题,这是我以前没有见过的。我的脚本隐藏了某些包装,这在Firefox和Chrome中有效,但在IE中不起作用。奇怪的是,当我打开IE控制台并刷新页面以查看日志时,它也会按照我的预期工作。它只在开发者工具打开的情况下刷新时修复 以下是控制台代码段: $.get('/help-and-advice/purchase-wizard/product-details/' + product_id, function(data) { console.log(d
$.get('/help-and-advice/purchase-wizard/product-details/' + product_id, function(data) {
console.log(data);
$.each(data.show, function() {
$.each(this, function(index) {
$('#' + data.show[index]).show();
});
});
$.each(data.hide, function() {
$.each(this, function(index) {
$('#' + data.hide[index]).hide();
});
});
在控制台日志中,我希望隐藏的包装也列在data.show对象中。当出现控制台语句且控制台未打开时,IE将失败 换成
window.console && console.log(...)
或者在测试前,将其注释掉,或者记住点击F12
我有这个: 简单版本:
if (!window.console) window.console={ log:function(str) { alert(str) } }
更复杂的版本,处理逗号分隔的参数-它不解包对象,但可以处理一层复杂性
if (!window.console)
window.console={ log:function() {
var text = [];
for (var a,i=0;i<arguments.length;i++) {
a=arguments[i];
text.push(typeof a+": "+(typeof a == "object" ? a.toString():a));
}
alert(text.join('\n'))
}
}
console.log("test",new Date())
if(!window.console)
console={log:function(){
var text=[];
对于(var a,i=0;i可选地,完全删除console.log()
。干杯,伙计。好老的难以置信的可靠、完美的IE:D