【问题标题】:Javascript File References Problem (with jQuery)Javascript 文件引用问题(使用 jQuery)
【发布时间】:2009-07-22 20:48:21
【问题描述】:

以前,我有这个:

<head>
    <script src="/Scripts/jquery-1.3.2.min.js" type="text/javascript"></script> 
    <script type="text/javascript">
        var optPrompt = "- Select One -";
        var subCats;
        var parentCats;
        var nextBtn;

        var ParentChanged = function() {
            ClearDescription();

            if (this.selectedIndex == 0) {
                $(subCats).html($("<option>").text(optPrompt));
            }


            $.getJSON('<%=Url.Action("GetChildCategories") %>', { parentId: $(this).val() },
                    function(data) {
                        subCats.options.length = 0;
                        $("<option>").text(optPrompt).appendTo(subCats);
                        $(data).each(function() {
                            $("<option>").attr("value", this.ID).text(this.Name).appendTo(subCats);
                        });
                    });
        }

        var DisplayDescription = function(catId) {
            $.ajax({
                url: '<%=Url.Action("GetDescription") %>',
                data: { categoryId: catId },
                dataType: 'html',
                success: function(data) {
                    $("p#categoryDescription").html(data);
                }
            });
        }

        var ChildChanged = function() {
            var catSelected = this.selectedIndex != 0;

            if (!catSelected) ClearDescription();
            else DisplayDescription($(this).val());
        }

        var ClearDescription = function() {
            $("p#categoryDescription").html('');
        }

        $(function() {
            parentCats = $("select#Category").get(0);
            subCats = $("select#Subcategory").get(0);
            nextBtn = $("input#nextButton").get(0);

            $(parentCats).change(ParentChanged);
            $(subCats).change(ChildChanged);
        });

    </script> 
</head>

然后我将所有内联脚本放入一个文件 (myScript.js) 并将我的 HTML 更改为:

<head>
    <script src="/Scripts/jquery-1.3.2.min.js" type="text/javascript"></script> 
    <script src="/Scripts/myScript.js" type="text/javascript"></script> 
</head> 

现在没有任何效果。我在 IE7 中打开了我的页面,它有一个页面错误,内容如下:

行:54
错误:未知名称。

第 54 行恰好是我的外部 javascript 文件的最后一行。

我做错了什么?

【问题讨论】:

    标签: javascript jquery html filereference


    【解决方案1】:

    我说这是 ASP.Net 对吗?如果是,内联脚本如下:

    <%=Url.Action("GetDescription") %>
    

    无法进入外部 JavaScript 文件。

    【讨论】:

    • 这就是问题所在 - javascript 引用中的 ASP.NET 代码不会被服务器上的 ASP.NET 处理。
    • 我敢打赌这就是问题所在。我知道这一点,但我忘记了我在剧本中有这个。哦,好吧,我想我会把脚本留在页面中。我不认为还有什么可以做的。
    【解决方案2】:

    您是否将

    您的 myScript.js 应该以

    开头

    var optPrompt = "- 选择一个-";

    【讨论】:

    • 不,我没有犯那个错误。
    【解决方案3】:

    由于您现在将 js 作为静态文件提供服务,而不是通过您的 ASP,所以像

    这样的行
    <%=Url.Action("GetChildCategories") %>
    

    将不再起作用,因为服务器不会解释它们并用正确的值替换它们。您需要在脚本中对它们进行硬编码,或者将这些行作为内联脚本保留在主页中,并将它们设置为全局变量,然后您可以从外部文件中引用它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多