-1

当用户单击提交按钮时,我试图显示加载微调器。我尝试实施此处提供的解决方案,但它不起作用。

我已经验证了该函数正在被调用,并且目标 div 正在被 jQuery 通过抛出一个alert(spinner.innerHTML)来找到,如下所示:

<script type="text/javascript">
    $(document).ready(function () {
        var spinner = $("div#spinner");
    });
    var spinnerVisible = false;
    function showProgress() {
        if (!spinnerVisible) {
            alert(spinner.innerHTML);
            spinner.show();
            spinnerVisible = true;
        }
    };
    function hideProgress() {
        if (spinnerVisible) {
            spinner.hide();
            spinnerVisible = false;
        }
    };
</script>

正如预期的那样,当我点击我的按钮时,我会看到一个带有文本“正在加载...”的警报窗口,这是来自我的 div 的文本。但是,如果我在调用spinner.show();之后添加第二个警报;它没有弹出,这让我相信对spinner.show();的调用 导致jQuery失败。

这是我第一次涉足 jQuery,所以我正在努力解决如何调试它并找出问题所在。

4

3 回答 3

1

根据调试程序,您的项目似乎没有包含 jQuery 库。

请在您的项目中启用 jQuery 以使用 jQuery 功能。

于 2013-03-08T03:32:20.720 回答
0

您应该正确定义微调器(即在全局中)

<script type="text/javascript">
    var spinner;
    $(document).ready(function () {
        spinner = $("div#spinner");
    });
    var spinnerVisible = false;
    function showProgress() {
        if (!spinnerVisible) {
            alert(spinner.innerHTML);
            spinner.show();
            spinnerVisible = true;
        }
    };
    function hideProgress() {
        if (spinnerVisible) {
            spinner.hide();
            spinnerVisible = false;
        }
    };
</script>
于 2013-03-08T02:54:07.180 回答
0

您正在尝试访问 spinner 变量而在函数中没有作用域。

<script type="text/javascript">
        $(document).ready(function () {
            var spinner = $("div#spinner");
        });
        var spinnerVisible = false;
        function showProgress() {
            var spinner = $("div#spinner");
            if (!spinnerVisible) {
                alert(spinner.innerHTML);
                spinner.show();
                spinnerVisible = true;
            }
        };
        function hideProgress() {
            var spinner = $("div#spinner");
            if (spinnerVisible) {
                spinner.hide();
                spinnerVisible = false;
            }
        };
    </script>
于 2013-03-08T02:56:32.607 回答