如何为平板电脑和桌面编写不同的事件

时间:2014-04-29 15:04:54

标签: javascript backbone.js javascript-events marionette right-click

根据我的规格,我必须在桌面和平板电脑上显示right click menu

enter image description here

我在桌面和平板电脑上使用相同的文件。所以我在Marionette.js

中写了以下内容

代码:

events:{
 //desktop events
 "contextmenu td":"checkingDeviceType",
 "contextmenu input":"checkingDeviceType",
 //tablet events
 "mousedown.LongTouch td":"checkingDeviceType",
 "mousedown.LongTouch input":"checkingDeviceType",
},
checkingDeviceType:function(event){
    var windowWidth=window.screen.width,self=this;
    if (windowWidth>1024) {
        //desktop view
        this.renderingfRightClickFeature(event);
    }else{
        //tablet view
        setTimeout(function(){
                self.renderingfRightClickFeature(event)},
                1000
        );
    };
},
renderingfRightClickFeature:function(event){
     //logic is here
     console.log("Right click menu code comes here");
   }  

根据规格,在desktop如果用户右键单击,则menu将会出现。tablet long press事件中的right click menu同样会出现右键单击菜单。< / p>

我面临的问题:

即使我在桌面mousedown.LongTouch中单击(左键单击),也就是{{1}}事件触发。但它不应在桌面上触发。

我希望你明白我的问题是什么。任何人都可以帮助我。

感谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,我使用taphold事件代替mousedown.LongTouch。现在它工作正常。如果有人知道任何其他解决方案,请建议我。

感谢。