【问题标题】:How I can use a css and javascript menu in my asp.net application? [closed]如何在我的 asp.net 应用程序中使用 css 和 javascript 菜单? [关闭]
【发布时间】:2014-03-31 00:27:16
【问题描述】:

您好,我想在我的 asp.net 应用程序中测试一个菜单,但我收到一个 javascript 错误。

这里是我的 aspx:

<nav id="cbp-hrmenu" class="cbp-hrmenu">
    <ul>
        <li>
            <a href="#">Products</a>
            <div class="cbp-hrsub">
                <div class="cbp-hrsub-inner">
                    <div>
                        <h4>Learning & Games</h4>
                        <ul>
                            <li><a href="#">Catch the Bullet</a></li>
                            <li><a href="#">Snoopydoo</a></li>
                            <!-- ... -->
                        </ul>
                    </div>
                    <div>
                        <h4>Utilities</h4>
                        <ul>
                            <li><a href="#">Gadget Finder</a></li>
                            <li><a href="#">Green Tree Express</a></li>
                            <li><a href="#">Green Tree Pro</a></li>
                            <li><a href="#">Wobbler 3.0</a></li>
                            <li><a href="#">Coolkid</a></li>
                        </ul>
                    </div>
                    <div>
                        <!-- ... -->
                    </div>
                </div><!-- /cbp-hrsub-inner -->
            </div><!-- /cbp-hrsub -->
        </li>
        <li><!-- ... --></li>
        <li><!-- ... --></li>
        <!-- ... -->
    </ul>
</nav>

这里是javascript:

var cbpHorizontalMenu = (function() {

    var $listItems = $( '#cbp-hrmenu > ul > li' ), //<--error $listItems is undefine
        $menuItems = $listItems.children( 'a' ),
        $body = $( 'body' ),
        current = -1;

    function init() {
        $menuItems.on( 'click', open );
        $listItems.on( 'click', function( event ) { event.stopPropagation(); } );
    }

    function open( event ) {

        if( current !== -1 ) {
            $listItems.eq( current ).removeClass( 'cbp-hropen' );
        }

        var $item = $( event.currentTarget ).parent( 'li' ),
            idx = $item.index();

        if( current === idx ) {
            $item.removeClass( 'cbp-hropen' );
            current = -1;
        }
        else {
            $item.addClass( 'cbp-hropen' );
            current = idx;
            $body.off( 'click' ).on( 'click', close );
        }

        return false;

    }

    function close( event ) {
        $listItems.eq( current ).removeClass( 'cbp-hropen' );
        current = -1;
    }

    return { init : init };

})();

我必须做什么:(

【问题讨论】:

  • 如果您使用 jQuery - 不要在变量名中使用 $。
  • $( '#cbp-hrmenu > ul > li' ) 是 jQuery 语法,所以看起来您正在使用 jQuery 或其他使用类似语法的库。您还使用了 jQuery 函数,例如 on() 和 removeClass(),所以我很确定它是 jQuery。
  • 我猜 $ 未定义可能是你的错误?尝试加载 jQuery。或者告诉我们错误是什么。

标签: c# javascript html asp.net css


【解决方案1】:

您是否已将 CSS 添加到您的 ASP.NET 应用程序中?

<link rel="stylesheet" runat="server" media="screen" href="~/css/styles.css" />

要创建与 Javascript 文件和 ASP.NET 文件的集成,您只需将 *.js 添加到您的 &lt;head&gt; 标记中,这样做:

<head runat="server">
<script src="FileName.js" type="text/javascript"></script>
</head>

我还注意到您正在使用 jQuery 库,您可能没有包含它。把它也放在你的&lt;head&gt;标签中。

<script type="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 2017-08-08
    • 2012-10-14
    • 2012-08-27
    • 1970-01-01
    相关资源
    最近更新 更多