尽管事件处理程序中的函数正常运行,但jQuery click事件处理程序在IE中不起作用

时间:2013-10-04 11:55:36

标签: jquery asp.net-mvc javascript-events event-handling

ASP.NET MVC应用程序。

只有IE有问题。

考虑这两个功能:

function refreshParameters() {
                doRefresh('#loading-production-parameters', '#partial-rows-parameters', '@VirtualPathUtility.ToAbsolute("~/home/ProductionParameters")');
            }
            //
            //
            //
function refreshTotals() {
                doRefresh('#loading-production-totals', '#partial-rows-totals', '@VirtualPathUtility.ToAbsolute("~/home/ProductionTotals")');
            }

脚本和事件处理程序的开头:

$(function () {
            //
            //Init
            //Initial Tasks
            //
            refreshParameters();
            refreshTotals();
            //
            // Events
            //
            $('#yla-debug').click(function (e) {
                refreshParameters();
                refreshTotals();
            });

奇怪的是,当页面加载时,refreshParameters和refreshTotals会运行。

但是在点击事件处理程序上他们没有。

如果我在事件处理程序中发出警报就会激活ok。另外,firebug中的控制台显示没有错误

有什么想法吗?

P.S:使用该事件的元素的html标记。

<div id="yla-debug" class="panel panel-default">
    <div class="panel-heading clearfix">
        <h3 class="panel-title pull-left">Daily Production Data for <span style="font-weight: bold;">@ViewBag.SiteName</span>&nbsp;&nbsp;</h3>
        <span style="font-weight: normal; background-color: #000080;" class="badge pull-left">(Autoupdate every 30 min.)</span>
        <div class="pull-right" id="loading-production-parameters">
            <span>Refreshing</span>
            <img src="~/Content/ajax-loader-bar1.gif" />
        </div>
    </div>
    <div class="panel-body">
        <table id="partial-rows-parameters" class="table table-striped table-hover">
        </table>
    </div>
    <div class="panel-footer">
            <span>Last Refresh: </span>
            <span id="last_refresh_parameters"></span>
    </div>
</div>

附加信息#1:

即使我将选择器替换为更通用的选择器,它也不起作用。 $('body),$('img')....

附加信息#2:

doRefresh方法,当从事件调用但在启动时运行时不运行:

function doRefresh(what, dataContainer, action) {
                $(what).show();
                $.ajax({
                    url: action,
                    dataType: 'html',
                    success: function (data) {
                        $(dataContainer).html(data);
                        $(what).hide();
                    }
                });

1 个答案:

答案 0 :(得分:0)

只是我的愚蠢...

这解决了我的问题:

$.ajaxSetup({                
               cache: false 
            });

IE会做很多不同的事情,缓存AJAX请求也是如此。