3

isTouchscreen と呼ばれるブール変数といくつかの on('hover', ...) イベントがあります。isTouchscreen ブール変数が true の場合、on('hover') イベントを on('click') イベントに変更する必要があります。これは可能ですか?

何かのようなもの:

 $(".smart-suggestions").on("hover", ".option", function(){
    $('.img-container img').show();
    //and do more stuff....
 });

    if(touchscreen==true){
       //change onhover event to onclick event  
    }
4

2 に答える 2

7

あなたはこのようにすることができます:

var evt = touchscreen ? 'click' : 'hover';

$(".smart-suggestions").on( evt, ".option", function(){/*.....*/});

両方のイベントが必要な場合の代替アプローチ:

$(".smart-suggestions").on('click hover', ".option", function(event){
       /* create whatever conditions you need*/
      if( event.type=='click' && touchscreen){
            doThis();
       }else{
              doThat();
       }
});
于 2012-12-24T22:42:58.643 に答える
2

「クリック時」イベントを常にバインドすることをお勧めします。条件付きで、タッチスクリーンが false の場合、ホバー イベントにもバインドします。

于 2012-12-24T22:43:02.640 に答える