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

我建议您始终绑定“点击”事件。并且有条件地,如果触摸屏为假,也绑定悬停事件。

于 2012-12-24T22:43:02.640 回答