我已经使用jQuery几年了,在我的最新项目之前,实际上没有跨浏览器问题。我在一个Asp.NET网站上工作,该网站自始至终都使用了相当多的jQuery,我遇到了最令人困惑的问题。当使用IE时,仅在回发后或第一次访问网站时(而不是在刷新页面时),jQuery会正确执行.ready方法,但当绑定到事件的任何函数在函数break中触发一些jQuery方法时。你可以在这里看到这个。在我测试过的所有其他浏览器上,jQuery都能完美运行。
我只是不知道还能尝试什么。
如果你真的去了网站,看到我所指的错误的最简单方法就是更改位置,然后再次尝试更改。
感谢
<script type="text/javascript">
$(function () {
$('#ctl00_uxLocationSelect_uxLocationButton').button({
icons: { primary: 'ui-icon-flag', secondary: 'ui-icon-triangle-1-s' }
}).unbind('click').unbind('hover').click(function () {
var wrap = $(this).siblings('.locationDD-wrap').first();
if (wrap.is(':visible')) { // IE breaks here
wrap.slideUp(300, 'swing');
$(this).removeClass('ui-state-active');
}
else {
wrap.slideDown(500, 'swing');
GetCities(wrap.find('.citySelect-wrap').first(), wrap.find('.loading').first());
$(this).addClass('ui-state-active');
}
}).mouseout(function() {
$(this).addClass('ui-state-hover'); // IE breaks here
}).hover(function () {
$(this).removeClass('ui-state-hover'); // IE breaks here
});
$('#ctl00_uxLocationSelect_uxStateSelect').selectmenu().change(function () {
var loading = $(this).siblings('.loading').first();
var cityWrap = $(this).siblings('.citySelect-wrap').first();
GetCities(cityWrap, loading);
});
// Other functions omitted
});
</script>
这段代码位于html的中间,但我已经将其移动了一遍,没有任何更改。奇怪的是button()、click()和其他jQuery函数运行正常。。。
编辑:我刚刚在室友的电脑上试用了这个网站,它似乎运行得很好。。有人能试着去吗http://www.thegameshuffle.com/并更改几次位置,然后发布发生了什么?
编辑:我没有使用更新面板
我似乎安装了一个错误的IE。在John Pick发表评论后,我试图重新安装IE,看看这是否能解决问题。不幸的是,我自己的机器仍然有问题,但由于它适用于我测试过的任何其他人,所以我会将其标记为已回答。