为触摸屏设备更改('悬停')('点击')?

时间:2012-12-24 22:38:48

标签: javascript jquery

我有一个名为isTouchscreen的布尔变量和一些on('hover',...)事件。如果isTouchscreen布尔变量等于true,那么我需要将('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  
    }

2 个答案:

答案 0 :(得分: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();
       }
});

答案 1 :(得分:2)

我建议您始终绑定'on click'事件。并且有条件地,如果触摸屏是假的,也可以在悬停事件上绑定。