繁体   English   中英

一些javascript运行,而某些则没有

[英]Some javascript runs and some doesn't

我不确定这究竟何时开始发生。 使用我一直在使用的新代码(ajax),我在C#/ VS2013中的开发环境看起来很棒。 我去了将该代码部署到一个beta站点,并且某些javascript代码无法正常工作(下面模拟的一页上的选项卡菜单)。

然后,我回到我的开发环境中,发现它可以在IE中正常运行,但不能在Firefox或chrome中运行。 在尝试清理它时,我现在也在IE中将其破坏了,我认为这是一件好事,因为我现在可以解决/验证该问题。

我在项目中创建了一个测试页,并在选项卡控制器测试中进行了复制。

@section Scripts
{

    <script type="text/javascript"> 

    $(function () {
        $("#tabs").tabs();
    });

    alert("test");


</script>
}

<body>

<div id="tabs">
    <ul>
        <li><a href="#tabs-1">tab1</a></li>
        <li><a href="#tabs-2">tab2</a></li>

    </ul>
    <div id="tabs-1">
        tab 1
    </div>
    <div id="tabs-2">
        tab 2
    </div>

</div>

当我调用页面时会触发alert(),因此我知道javascript正在运行。 同样,选项卡控制器在页面顶部创建选项卡,但同时显示tab1和tab2,并且选项卡不会切换页面。

菜单选项是twitter引导菜单,也可以正常使用。

我的layout.cshtml的顶部位置如下:

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/knockout")
@Scripts.Render("~/bundles/modernizr")

而在renderbody部分之后:(我试过上面部分和下面的rendersection脚本的放置。)

@RenderSection("scripts", required: false)

BundleConfig.cs具有以下功能:

    public static void RegisterBundles(BundleCollection bundles)
    {
        RegisterStyleBundles(bundles);

        bundles.Add(new ScriptBundle("~/bundles/jquery")
            .Include("~/Scripts/jquery-{version}.js")
            .Include("~/Scripts/jquery-ui-{version}.js")
            .Include("~/Scripts/jquery.unobtrusive*")
            .Include("~/Scripts/jquery.validate*")
            .Include("~/Scripts/jquery.migrate-121.min.js")
            .Include("~/Scripts/bootstrap.js")
            );

        bundles.Add(new ScriptBundle("~/bundles/knockout").Include(
                "~/Scripts/knockout-{version}.js"));

        bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                    "~/Scripts/modernizr-*"));


        bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
                    "~/Content/themes/base/jquery.ui.core.css",
                    "~/Content/themes/base/jquery.ui.resizable.css",
                    "~/Content/themes/base/jquery.ui.selectable.css",
                    "~/Content/themes/base/jquery.ui.accordion.css",
                    "~/Content/themes/base/jquery.ui.autocomplete.css",
                    "~/Content/themes/base/jquery.ui.button.css",
                    "~/Content/themes/base/jquery.ui.dialog.css",
                    "~/Content/themes/base/jquery.ui.slider.css",
                    "~/Content/themes/base/jquery.ui.tabs.css",
                    "~/Content/themes/base/jquery.ui.datepicker.css",
                    "~/Content/themes/base/jquery.ui.progressbar.css",
                    "~/Content/themes/base/jquery.ui.theme.css"));
    }

    private static void RegisterStyleBundles(BundleCollection bundles)
    {
        bundles.Add(new StyleBundle("~/css")
                        .Include("~/Content/bootstrap.css")
                        .Include("~/Content/bootstrap-responsive.css")
                        .Include("~/Content/site.css"));
    }
}

在Firebug中,除了一系列CSS问题之外,我没有看到任何其他错误,这些问题似乎都与版本控制有关,根据jQuery站点,它们将被忽略。 (在整个事情开始发生之前,他们也在那里)。

Nuget显示它正在从项目中删除旧版本的jquery,但实际上并未删除jquery文件。 答案是从Visual Studio项目外地的scripts文件夹中删除旧版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM