运行AJAX的选择奇怪的IE8问题

时间:2010-08-18 13:48:53

标签: javascript ajax internet-explorer-8

我在IE8和邮政编码查找方面遇到了一个奇怪的错误。它可能不是导致它的邮政编码查找 - 只是一个修改选择的AJAX调用。我已经设置了一个测试页here。如果单击“查找地址”,然后双击(非常快速)在红色边框div边界内的其中一个地址上,则会在IE8中看到以下错误。

注意:我发现重现错误不一致,但如果您将地址列表向右滚动到底部,然后在Holly Cottage上快速双击它应该重现该错误。

IE8 Oddities

如果有人能够阐明这种古怪的行为,我们将不胜感激。这是IE8的错误吗?

3 个答案:

答案 0 :(得分:2)

我发现了问题 - 浏览器不喜欢为javascript:void()属性设置href。如果您想要一个默认操作被取消的工作锚,那么对#属性使用href,然后让该锚return false的事件处理程序取消浏览器的默认操作。


呃...对...抱歉我急于发布答案而不是仔细检查问题是否得到了妥善解决。

我发现很难找到问题所在。我只会冒这样的猜测:同时运行和结束的两个效果会混淆IE8,导致div设置为1px的高度。这当然假设效果队列的jQuery实现中存在一个错误,我绝对不能保证。这只是我的理论 - 我对IE开发人员工具栏的不熟悉使我无法进一步调查。

答案 1 :(得分:1)

我想你运行动画是个问题。 您的异步操作会触发一些滑动动画。

第一: 尝试记录所有动画的结尾(在slide*调用中放置回调函数并将一些文本记录到控制台。)以查看它们是否以正确的顺序运行 - 我认为它们没有,这就是问题。

第二: 尝试在每个异步触发的动画之前添加.stop(),以便它同时打破其他动画。

第三: 如果上面没有帮助尝试每个动画:

if($(this).data('running')==0){
$(this).data('running',1).slideUp(function(){$(this).data('running',0)});
}else{ /*call with timeout or ignore...*/ }

它是元素的基本信号量。

OR

你可以在jQuery中正确使用.animate和动画队列,但对于这种情况来说这有点过分(我认为)。

答案 2 :(得分:0)

我的第一反应是它可能是一个CSS问题。如果我找到默认值,并单击“查找地址”链接一次,我会看到类似(但不完全相同)的布局问题。每个部分的高度看起来都是折叠的,就像浮动部分没有拾取正确的内容高度一样。如果我在每个contentRow上逐步指定高度或在pcodeLookupAddressEdit_risk_address上从block-none-block切换显示,则格式化将得到纠正。

我不知道具体原因,但是,您可能想检查幻灯片上的CSS和显示/隐藏行为。