2

現在、第 1 レベルの項目がクリックされたときに展開される展開可能な垂直ドロップダウン メニューがありますが、代わりにメニュー項目にカーソルを合わせたときに展開したいと考えています。元のスクリプトは次のとおりです。

<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>

私はに変更.click(function.hover(function、これは機能しますが、それが最善の方法であるかどうかはわかりません。これを達成するためのより良い方法があるかどうか、誰にもアドバイスできますか? ここをクリックすると、ページの左側にあるメニューの .click バージョンの実例を見ることができますありがとう!

4

1 に答える 1

0

ホバーに変更しても問題ありません。これは非常に読みやすいコードであることは間違いありません。これは重要なことです。ただし、問題が 1 つあります。Daniel がコメントしているように、タッチ デバイスでメニューをナビゲートできなくなります。つまり、すべての携帯電話とタブレットでサイトにアクセスできなくなります*。これは非常に悪いことですが、できることがいくつかあります。

たとえば、jQTouchライブラリには、モバイル ユーザー向けにメニューを最適化できる素晴らしいタッチ固有のイベント処理が含まれています。それ以外の場合は、メニューの JavaScript ロジックを条件付きでラップするか、各アクションをタッチとクリックの両方に割り当てることができます。

*マウス付きの携帯電話とタブレットを除く (非常に特殊な使用例)。

于 2012-08-31T00:04:53.000 に答える