0

現在、PHPとjQueryで問題が発生しています。

私はこのようなウェブサイトを構築しました:

header.php-これはすべてのcssおよびjsファイルがロードされる場所です。index.php-メインページ。sidemenu.php-これは、index.phpに含まれているサイドメニューです。

sidemenu.phpの中に私はこのJSコードを持っています:

    <script type="text/javascript">
    jQuery(document).ready(function($) {
        $(".more").live('click', function(){
        $(this).next(".submenu").slideToggle(500); });
    });
    </script>

.moreをslideToggleに追加する必要があります。

<div class="twocol" id="side-menu">

    <ul class="menu">
        <li>Dashboard</li>     
        <li class="more"><a href="#">Security Settings</a> <img src="images/dropdown-menu.png" align="right"></li>
            <ul class="submenu">
                <li>Blacklistings</li>
                <li>New Membership Package</li>  
            </ul>                        
        <li class="more"><a href="memberships.php">Memberships</a> <img src="images/dropdown-menu.png" align="right"></li>
            <ul class="submenu">
                <li>New Membership</li>
                <li>New Membership Package</li>  
            </ul>         
        <li>Forums</li>  
        <li>Help Desk</li>
        <li class="help">Documentation</li>    
    </ul>   

</div><!-- END 2col --> 

それでも、.moreをクリックしても何も起こりません。

奇妙なことに、上記の3ページのソースコードを使用してページを作成すると、機能します。

私は何が間違っているのですか?

前もって感謝します。

4

2 に答える 2

2

を置き換える必要があります:

$(this).next(".submenu").slideToggle(500);

$(this).children(".submenu").slideToggle(500);

(次に、同じレベルで次のタグを呼び出します)

編集 :

私は少し盲目です。サブメニュー.moreでタグを開く前にクラスでタグを閉じたことを知りませんでした。<ul>しかし、それは私に別の問題を示しました.同じタグ内の要素<li>と同じレベルに要素を配置しています.<ul>

于 2012-08-05T11:37:52.083 に答える
0

どのバージョンの jQuery を使用していますか? jQueryのWebサイトでこれを見つけました:

jQuery 1.7 以降、.live() メソッドは非推奨になりました。.on() を使用して、イベント ハンドラーをアタッチします。古いバージョンの jQuery のユーザーは、.live() よりも .delegate() を使用する必要があります。

于 2012-08-05T11:39:36.450 に答える