jQuery脚本引用

时间:2011-08-27 08:01:20

标签: jquery asp.net

当我写这段代码时:

<script type="text/javascript">
        function showhide(master, detail) {
            var src = $(master).children()[0].src;
            if (src.endsWith("plus.png"))
                src = src.replace('plus.png', 'minus.png');
            else
                src = src.replace('minus.png', 'plus.png');

            $(master).children()[0].src = src;

            $(detail).slideToggle("normal");
        }
</script>

并在ScriptManager中引用jQuery库:

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Scripts>
        <asp:ScriptReference Path="~/scripts/jquery-1.4.1.min.js" ScriptMode="Release" />
    </Scripts>
</asp:ScriptManager>

每件事都没问题。但是当我在代码上面提交并参考jQuery In head part:

<script src="scripts/jquery-1.4.1.min.js" type="text/javascript"></script>

调试器提醒我endsWithObject doesn't support this property or method

为什么asp.net有这种行为?

感谢

2 个答案:

答案 0 :(得分:2)

在你的代码的这一行:

if (src.endsWith("plus.png"))

您假设字符串对象有一个名为endsWith()的方法,但标准的javascript没有这样的方法。有各种扩展将该方法添加到字符串对象(这是一个简单的写入),但你不能认为它存在,除非你专门将它添加到String对象原型。

除非两个配置中的一个配置了安装此扩展的库,否则我无法解释为什么它会工作。它不是jQuery的一部分。

这是一个关于添加endsWith()方法的早期SO问题:endsWith in JavaScript我碰巧喜欢这个讨论中的特定帖子:endsWith in JavaScript

答案 1 :(得分:1)

检查jquery的路径是否正确。 ScriptReference路径是“〜/ scripts / jquery”(相对于应用程序根目录)但您的直接引用是“scripts / jquery”(相对于页面),这些路径可能会有所不同,具体取决于页面的位置。