jQuery在IE中的$(document).ready()之后破解

时间:2012-03-07 04:32:40

标签: jquery asp.net internet-explorer

我已经使用jQuery几年了,直到我的最新项目才真正没有跨浏览器问题。我正在开发一个使用相当多jQuery的Asp.NET站点,我遇到了最令人困惑的问题。当使用IE时,仅在回发后或首次访问网站时(而不是刚刚刷新页面时),jQuery正确执行.ready方法,但是当绑定到事件的任何函数触发该函数内的一些jQuery方法时打破。你可以看到这个here。在我测试的所有其他浏览器上,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/并更改位置几次并发布会发生什么事情吗?

编辑:我没有使用更新面板

1 个答案:

答案 0 :(得分:0)

似乎我的IE安装有问题。在John Pick的评论之后,我试图重新安装IE,看看是否能解决问题。不幸的是,我仍然在我自己的机器上遇到问题但是因为它适用于我曾经测试的其他人,所以我会将其标记为已回答。