0

プロジェクトでアコーディオンを使おうとしています。私が理解したように、javascriptリンクはレイアウトページに追加し、javascriptコードはインデックスページに追加する必要があります。しかし、ブラウザは$(# "accordion")。accordionは関数ではないと言っています。これが_Layoutのコードです。

@using kazwaySite
<!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" 
        @Styles.Render("~/Content/themes/base/css", "~/Content/css")
        @Scripts.Render("~/bundles/modernizr")

   <link type="text/css" href="~/Scripts/css/ui-lightness/jquery-ui-1.8.22.custom.css" rel="stylesheet" />  
   <script type="text/javascript" src="@Url.Content("~/Scripts/js/jquery-1.7.2.min.js")"></script>
   <script type="text/javascript" src="@Url.Content("~/Scripts/js/jquery-ui-1.8.22.custom.min.js")"></script>

    </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(Resources.mainPage , "Index", "Home")</li>
                            <li>@Html.ActionLink(Resources.aboutPage, "About", "Home")</li>
                            <li>@Html.ActionLink(Resources.productsPage, "Index", "Home")</li>
                            <li>@Html.ActionLink(Resources.capabilitiesPage, "Index", "Home")</li>
                            <li>@Html.ActionLink(Resources.newsPage, "About", "Home")</li>
                            <li>@Html.ActionLink(Resources.partnersPage, "Index", "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" >
            <table >
            <tr style="font-size:20px;font-weight:500;">
            <td>@Html.ActionLink("О компании", "About", "Home")</td>
            <td>@Html.ActionLink("О продукции", "About", "Home")</td>
            <td>@Html.ActionLink("Возможности", "About", "Home")</td>
            <td>@Html.ActionLink("Новости", "About", "Home")</td>
            <td>@Html.ActionLink("О продукции", "About", "Home")</td>
            </tr>
            <tr style="font-size:12px;font-weight:500;">
            <td>@Html.ActionLink("О компании", "About", "Home")</td>
            <td>@Html.ActionLink("О продукции", "About", "Home")</td>
            <td>@Html.ActionLink("Возможности", "About", "Home")</td>
            <td>@Html.ActionLink("Новости", "About", "Home")</td>
            <td>@Html.ActionLink("О продукции", "About", "Home")</td>
            </tr>
            <tr style="font-size:12px;font-weight:500;">
            <td>@Html.ActionLink("О компании", "About", "Home")</td>
            <td>@Html.ActionLink("О продукции", "About", "Home")</td>
            <td>@Html.ActionLink("Возможности", "About", "Home")</td>
            <td>@Html.ActionLink("Новости", "About", "Home")</td>
            <td>@Html.ActionLink("О продукции", "About", "Home")</td>
            </tr>
            <tr style="font-size:12px;font-weight:500;">
            <td>@Html.ActionLink("О компании", "About", "Home")</td>
            <td>@Html.ActionLink("О продукции", "About", "Home")</td>
            <td>@Html.ActionLink("Возможности", "About", "Home")</td>
            <td>@Html.ActionLink("Новости", "About", "Home")</td>
            <td>@Html.ActionLink("О продукции", "About", "Home")</td>
            </tr>
            <tr style="font-size:12px;font-weight:500;">
            <td>@Html.ActionLink("О компании", "About", "Home")</td>
            <td>@Html.ActionLink("О продукции", "About", "Home")</td>
            <td>@Html.ActionLink("Возможности", "About", "Home")</td>
            <td>@Html.ActionLink("Новости", "About", "Home")</td>
            <td>@Html.ActionLink("О продукции", "About", "Home")</td>
            </tr>
            <tr style="font-size:12px;font-weight:500;">
            <td>@Html.ActionLink("О компании", "About", "Home")</td>
            <td>@Html.ActionLink("О продукции", "About", "Home")</td>
            <td>@Html.ActionLink("Возможности", "About", "Home")</td>
            <td>@Html.ActionLink("Новости", "About", "Home")</td>
            <td>@Html.ActionLink("О продукции", "About", "Home")</td>
            </tr>
            <tr style="font-size:12px;font-weight:500;">
            <td>@Html.ActionLink("О компании", "About", "Home")</td>
            <td>@Html.ActionLink("О продукции", "About", "Home")</td>
            <td>@Html.ActionLink("Возможности", "About", "Home")</td>
            <td>@Html.ActionLink("Новости", "About", "Home")</td>
            <td>@Html.ActionLink("О продукции", "About", "Home")</td>
            </tr>

            </table>
                <div class="float-left">
                    <p>&copy; @DateTime.Now.Year - ONM Web studio</p>
                </div>
                <div class="float-right">
                    <ul id="social">
                        <li><a href="http://facebook.com" class="facebook">Facebook</a></li>
                        <li><a href="http://twitter.com" class="twitter">Twitter</a></li>
                    </ul>
                </div>
            </div>
        </footer>

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

index.cshtmlのコード

@model IEnumerable<kazwaySite.Models.News>


    <script type="text/javascript">
        $(function () {
            $("#accordion").accordion({ header: "h3" });
        });
   </script>
        <div id="accordion">
            <div>
                <h3><a href="#">First</a></h3>
                <div>Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.</div>
            </div>
            <div>
                <h3><a href="#">Second</a></h3>
                <div>Phasellus mattis tincidunt nibh.</div>
            </div>
            <div>
                <h3><a href="#">Third</a></h3>
                <div>Nam dui erat, auctor a, dignissim quis.</div>
            </div>
        </div>
4

2 に答える 2

2

関数アコーディオンが定義されていない場合、jquery ui は読み込まれません。ブラウザで確認してください。そのリンクは正しい場所を指しています。

于 2012-07-27T12:19:45.063 に答える
1

JavaScript のインクルージョンを完全に混乱させてしまいました。jquery を複数回 (頭に 1 回、下部に 1 回) 含めましたが、ビュー内のレイアウトで定義したスクリプト セクションをオーバーライドしていません。

物事をきれいにしてみましょう。これは ASP.NET MVC 4 アプリケーションであるため、バンドルを使用することをお勧めします。箱から出してすぐに多くのバンドルがありますが、1 つは 用jquery、もう 1 つは 用jqueryuiです。その2つで十分です。バンドルとスクリプトを別々に含める必要はありません。これはバンドルの目的を完全に無効にし、多くの場合、重複したスクリプトで終わることになります...したがって、~/App_Start/BundleConfig.csファイルで先に進み、使用するバンドルを定義します。より新しいバージョンのスクリプトを使用する場合は、NuGets を更新してください。一日の終わりには、必要なスクリプトが~/Scriptsフォルダーにあり、バンドル ID が構成されている必要があります。

@using kazwaySite
<!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" 
        @Styles.Render("~/Content/themes/base/css", "~/Content/css")
        <link type="text/css" href="~/Scripts/css/ui-lightness/jquery-ui-1.8.22.custom.css" rel="stylesheet" />  
    </head>
    <body>
        ... some markup ommited for clarity ...

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

そしてあなたのビューの中で:

@model IEnumerable<kazwaySite.Models.News>

@section scripts {
    <script type="text/javascript">
        $("#accordion").accordion({ header: "h3" });
    </script>
}

<div id="accordion">
    <div>
        <h3><a href="#">First</a></h3>
        <div>Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.</div>
        </div>
    <div>
        <h3><a href="#">Second</a></h3>
        <div>Phasellus mattis tincidunt nibh.</div>
    </div>
    <div>
        <h3><a href="#">Third</a></h3>
        <div>Nam dui erat, auctor a, dignissim quis.</div>
    </div>
</div>
于 2012-07-27T12:20:10.460 に答える