0
4

7 に答える 7

1

質問のマークアップに基づいて、コンテナーのクラスを参照する必要があります。ID がないため、ID では参照しません。

クリックでそれをしたい場合:

$('.mainmenu a').click(function() {
            $('li', this).addClass("menupressed");
});

マウスダウンの場合:

$('.mainmenu a').mousedown(function() {
    $('li', this).addClass("menupressed");
});
于 2012-06-13T01:14:52.410 に答える
1

マークアップが無効です。ブロック要素をインライン要素でラップしないでください。

     <div class="content">
          <ul class="mainmenu">
              <li><a href="page1.html">Page1</a></li>
              <li><a href="page2.html">Page2</a></li>
              <li><a href="page3.html">Page3</a></li>
          </ul>    
      </div><!--content--> 

また、idセレクターを使用してクラスを選択しています。これを試してください:

$(function() {

//MOUSE CLICK EVENTS
$('.mainmenu a').click(function() {
     $(this).addClass("menupressed");
})

});//END ONLOAD

http://jsfiddle.net/KLjH3/1/

于 2012-06-13T01:16:14.550 に答える
0

マークアップを想定

<ul><li><a></li>...</ul>

$(function() {
  $('#mainmenu a').on('click', function() {
     $(this).parent().addClass("menupressed");
  });
});
于 2012-06-13T01:00:15.083 に答える
0

マウス ボタンが押されてから離されると、clickイベントがトリガーされます。あなたが言ったように、ユーザーが「マウスボタンを3秒間押したままにした」ときに変化を確認できるようにしたい場合は、mousedownイベントを使用する必要があります。

それぞれの jquery ページで両方の動作を比較できます。

http://api.jquery.com/click/

http://api.jquery.com/mousedown/

ただし、ユーザーがマウス ボタンを押したままにし、マウスをアンカー要素の外に移動して離すと、リンクはクリックされないことに注意してください

于 2012-06-13T01:02:04.760 に答える
0

特定の要素にクリックを追加するに<a>は、内部セレクターを失います。

$('#mainmenu a').click(function() {
  this.addClass('menupressed');
});

<li>クラスを次の親要素に追加する必要がある場合:

$('#mainmenu a').click(function() {
  this.closest('li').addClass('menupressed');
});

これは、 http: //api.jquery.com/closest/.closest()にあるメソッドを使用します。

于 2012-06-13T01:02:55.643 に答える
0

これは3秒間押し続けるとクラスが追加されます。

クラスで動作するように編集

var hammertime=0;
$('.mainmenu a').bind('mousedown',function() {
    hammertime= window.setTimeout((function(elem){
     return function(){
        elem.addClass("menupressed");
     }
   })($(this).children('li')),3000) // Edit: If li is child, then use children('li')
})
.bind('mouseup',function() {
     window.clearTimeout(hammertime);
})

編集:

また、ロード時に実行されるように、すべてをその中にラップしてください。

$(document).ready(function(){
   /* the code here */
});
于 2012-06-13T01:03:39.530 に答える
0

CSS を使用して、リンクがアクティブになったときにリンクのスタイルを変更できます。

ここで例を参照してください: http://www.w3schools.com/css/tryit.asp?filename=trycss_link

a:link {color:#FF0000;}    /* unvisited link */
a:visited {color:#00FF00;} /* visited link */
a:hover {color:#FF00FF;}   /* mouse over link */
a:active {color:#0000FF;}  /* selected link */

したがって、 a:active は、要求したことを実行するために必要なものです。必要なすべてのスタイリングをそこに入れることができます。

于 2012-06-13T01:06:12.513 に答える