0

我遇到了一个小问题,我有下拉水平菜单栏,并且我已经应用 jquery 函数来打开和关闭父项和子项。太胖了,它在我的本地服务器上工作正常,但在我的实时服务器上不起作用。每件事都是实时上传的,我已经从实时服务器多次检查了所有脚本文件的引用。

这是我的 HTML 参考:

    <script src="../../resources/scripts/jquery-ui-1.8.16.custom.min.js" type="text/javascript"></script>

   </script>
    <script src="../../resources/scripts/smooth.js" type="text/javascript"></script>

HTML 代码:

 <div id="menu">
                    <ul id="Ul2" class="opened">
                        <li class="collapsible"><a href="#" class="collapsible plus">Settings</a>
                            <ul id="Ul3" class="collapsed">
                                <li><a href="#">General Settings</a></li>
                            </ul>
                        </li>
                    </ul>
                    <ul id="Ul4" class="opened">
                        <li class="collapsible"><a href="#" class="collapsible plus">Email Templates</a>
                            <ul id="Ul5" class="collapsed">
                                <li><a href="#">All Email Templates</a></li>
                                <li><a href="#">Add Email Template</a></li>
                            </ul>
                        </li>
                    </ul>
                    <ul id="Ul6" class="opened">
                        <li class="collapsible"><a href="#" class="collapsible plus">City</a>
                            <ul id="Ul7" class="collapsed">
                                <li><a href="#">All Cities</a></li>
                                <li><a href="#">Add City</a></li>
                            </ul>
                        </li>
                    </ul>

这是我的脚本:

$("#menu li a[class~=collapsible]").click(function () {
        var element = $(this);

        if (element.attr("class") == "collapsible plus") {
            element.attr("class", "collapsible minus");
        } else {
            element.attr("class", "collapsible plus");
        }

        var list = element.next();

        if (list.attr("class") == "collapsed") {
            list.attr("class", "expanded");
        } else {
            list.attr("class", "collapsed");
        }
    });

单击此处以实时查看我的站点,以便您可以轻松检查脚本未实时调用的问题。

4

9 回答 9

2

这是由于您的所有JavaScript 文件都给出了 404 错误消息,因此您的所有 JS 都无法正常工作。您可以在 Firebug 中看到这一点。

于 2013-04-15T10:12:43.207 回答
2

我建议您不要使用相对路径,例如:

   ../../resources/scripts/jquery-1.6.4.min.js

只需使用浏览器可访问的 URL,例如:

yourdomaain.com/resources/scripts/jquery-1.6.4.min.js

或者只是将您的资产放在 webroot 中。把你的assets(css, js, img)放到webroot外面是没有用的,如果你想展示给每个人,那么每个asset也必须是每个人都可以访问的;

于 2013-04-15T10:17:37.533 回答
0

几乎所有的 js 包括http://pakistantransporters.com/resources/scripts/jquery-ui-1.8.16.custom.min.js显示 404 未找到。

于 2013-04-15T10:12:53.030 回答
0

这是因为您的许多 URL 都指向无处(未找到 404),包括 jQuery 引用 - 所以 jQuery 没有加载,并且您的脚本尝试使用它,但ReferenceError: $ is not defined.

首先,您需要修复路径。

于 2013-04-15T10:13:31.740 回答
0

我想你要么有: -

1) 未在服务器上上传脚本文件夹。

2) 您的 javascript 文件路径错误。

3)您的脚本文件夹没有读取权限。

于 2013-04-15T10:13:46.163 回答
0

首先将 jquery 相关版本下载到本地,然后使用它。

舔:- xpath/jquery-1.11.1.min.js

于 2016-07-25T07:58:15.203 回答
0

导致此类问题的另一个可能原因是从托管的 HTML 文件中引用httpjQuery JavaScript文件。https

错误的:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>

对:

<script type="text/javascript" src="https://code.jquery.com/jquery-latest.js"></script>
于 2018-02-18T17:48:05.273 回答
0

我不知道这是否是您已经看到或使用过的问题,但是在 asp.net 核心中有 <environment include="Development">一个布局,它在您看到之前破坏了我的部署,我想把它写到这里。如果您使用,请不要忘记它。你可以在这里看到更多关于它的信息。

于 2018-11-02T07:58:45.600 回答
0

尝试检查链接是否以“http”而不是“https”开头。当您在新选项卡中打开 jquery 的链接时会发生这种情况,“https”更改为“http”

于 2020-09-05T16:13:38.700 回答