我有一个名为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
}
答案 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'事件。并且有条件地,如果触摸屏是假的,也可以在悬停事件上绑定。