2

以前に尋ねられたことはわかっていますが、JQUERYダイアログを機能させることができないようです。

JQUERY Web サイトから取得した簡単な例がありますが、ダイアログがポップアップしません。

私の _Layout.cshtml ページ

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8" />
            <title>@ViewBag.Title - My ASP.NET MVC Application</title>
            <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
            <meta name="viewport" content="width=device-width" />
            <script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
            <script src="@Url.Content("~/Scripts/jquery-ui-1.8.20.min.js")" type="text/javascript"></script>
<link href="@Url.Content("~/Content/themes/base/jquery.ui.all.css")" rel="stylesheet" type="text/css" />
            @Styles.Render("~/Content/css")
            @Scripts.Render("~/bundles/modernizr")
        </head>
        <body>
            <header>
                <div class="content-wrapper">
                    <div class="float-left">
                        <p class="site-title">@Html.ActionLink("your logo here", "Index", "Home")</p>
                    </div>
                    <div class="float-right">
                        <section id="login">
                            @Html.Partial("_LoginPartial")
                        </section>
                        <nav>
                            <ul id="menu">
                                <li>@Html.ActionLink("Home", "Index", "Home")</li>
                                <li>@Html.ActionLink("About", "About", "Home")</li>
                                <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
                            </ul>
                        </nav>
                    </div>
                </div>
            </header>
            <div id="body">
                @RenderSection("featured", required: false)
                <section class="content-wrapper main-content clear-fix">
                    @RenderBody()
                </section>
            </div>
            <footer>
                <div class="content-wrapper">
                    <div class="float-left">
                        <p>&copy; @DateTime.Now.Year - My ASP.NET MVC Application</p>
                    </div>
                </div>
            </footer>

            @Scripts.Render("~/bundles/jquery")
            @RenderSection("scripts", required: false)
        </body>
    </html>

私の Index.cshtml ページ

    <div id="dialog" title="Basic dialog">
        <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
    </div>

<script type="text/javascript">
    $(function () {
        alert("HELLO");
    });
</script>

    <script type="text/javascript">
        $(function () {
            $("#dialog").dialog();
        });
    </script>

アラートは表示されますが、ダイアログは表示されません。なぜでしょうか?

編集:いくつかの編集を行い、今これを持っています。

<div id="dialog" title="Basic dialog">
    <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
</div>

<script type="text/javascript">
    $(function () {
        alert("HELLO");
    });
</script>

<script type="text/javascript">
    $(function () {
        alert("HELLO2");
    });
</script>

<script type="text/javascript">
    $(function () {
        $("#dialog").dialog();
    });
</script>

<script type="text/javascript">
    $(function () {
        alert("HELLO3");
    });
</script>

アラートが 3 つある場合、HELLO と HELLO2 はアラートしますが、HELLO3 はしません。ただし、ダイアログ スクリプトの上に HELLO3 スクリプトを配置すると、3 つのアラートすべてが表示されます。何が起こっているのですか?

4

2 に答える 2

1

それだけで動作します: http://jsfiddle.net/Dy2Xw/

スクリプトをチェックして、正しくロードされていることを確認してください。また、jquery ベース js を 2 回ロードしているようです。

<script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>

<script src="http://code.jquery.com/jquery-1.8.2.js "></script>

また、2 つの css ファイルがあります。なぜ両方が必要なのかわかりません。

<link href="@Url.Content("~/Content/themes/base/jquery.ui.all.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/themes/base/jquery.ui.dialog.css")" rel="stylesheet" type="text/css" />

これらのスクリプトの読み込みをクリーンアップし、コンソールで js エラーがないか確認し、必要なものだけを入力して、もう一度試してください。

于 2012-11-05T02:46:20.237 に答える
0

</body>vs<head>タグの前のjsファイルの場所に関係しているのかもしれません。タグ@Scripts.Render("~/bundles/jquery")に移動<head></head>

于 2013-04-16T05:27:21.093 に答える