0

メニューにクリック機能とホバー機能の両方を追加しようとしています。クリック時にメニュードロップダウンをアクティブにする既存のJavascriptは次のとおりです。

<script type="text/javascript">
    $(document).ready(function () {
        $('#nav > li > a').click(function(){
            if ($(this).attr('class') != 'active'){
                $('#nav li ul').slideUp();
                $(this).next().slideToggle();
                $('#nav li a').removeClass('active');
                $(this).addClass('active');
            }
        });
    });
</script>

jqueryを使用して、ページの先頭に配置することで同時ホバートリガーを追加しようとしました。

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>$("#nav").bind("click hover", fn);</script>

とりわけ、そして予想通り、それらのどれも機能しませんでした。私は明らかに自分が何をしているのか分かりません!jqueryが追加されていない作業ページはここにあり、メニューはページの左側にあります。誰かが私にアドバイスを惜しまないなら、それは大いにありがたいです!

4

3 に答える 3

0

最新のJqueryに更新してみてから、以下を読んください。

.on( events [, selector] [, data], handler(eventObject) )

イベント:1つ以上のスペースで区切られたイベントタイプと、「click」や「keydown.myPlugin」などのオプションの名前空間。

.clickですから、基本的には、と交換して.on、イベントを利用できると思いますclick mouseover

編集

ソースページでは、Jqueryのバージョンは1.4.2、気付くためだけのものです。

于 2012-09-04T00:53:20.350 に答える
0

独自のソリューションを最初から作成する代わりに、事前に構築されたソリューションを使用できます。

Superfish- http: //users.tpg.com.au/j_birch/plugins/superfish/を参照してください。

Superfishは、クリック/ホバードロップダウンメニューを処理するjQueryプラグインです。

cssのみのドロップダウンメニューについては、「Suckerfish」を検索してください。ユーザーがjavascriptを有効にしていない場合に備えて、スーパーフィッシュを吸盤の上で使用して、優雅に劣化させることができます。

于 2012-09-04T00:30:58.860 に答える
0

私はこれが私のニーズに最適であることがわかりました:

`<script type="text/javascript">
$(function(){
$('#nav > li > ul')
.hide()
.click(function(e){
e.stopPropagation();
});

$('#nav > li').toggle(function(){
$(this)
.removeClass('waiting')
.find('ul').slideDown();
}, function(){
$(this)
.removeClass('waiting')
.find('ul').slideUp();
});

$('#nav > li').hover(function(){
$(this).addClass('waiting');
 setTimeout(function(){
$('#nav .waiting')
.click()
.removeClass('waiting');
},600);
}, function(){
$('#nav .waiting').removeClass('waiting');
});
});
</script>`

@Niloctは、以前にトリガーされたメニュー項目のサブメニューを閉じる方法を見つけるのに役立ちましたが、メニューが少し実用的ではなくなりました。ありがとう!

于 2012-09-07T07:41:58.883 に答える