给元素添加oncontextmenu事件 在火狐浏览器下不执行函数?

/动态生成tr/
for ( var j in dirs) {

    var shareDirid = dirs[j].id + ":dir";
    qq += "<tr oncontextmenu='operateList(event,this)'></tr>"
}

/右键菜单/
function operateList(event,obj){

 window.event.returnValue=false;
 var top=0,left=0;
 var btnNum = event.button;
     $(obj).addClass('a');
     $(obj).siblings().each(function(i,ele){
         if(ele.className.indexOf('a')!=-1){
             $(ele).removeClass('a');
         }
     });         
     $(obj).find('input[type="checkbox"]').prop('checked',true);
     $(obj).siblings().find('input[type="checkbox"]').prop('checked',false);
    var $opereteList=$('#operateList')[0];
    var $fileTable=$('#fileTable')[0];
    $opereteList.style.display='block';
    var eTop=event.clientY;
    var eLeft=event.clientX;
    var oHeight=$opereteList.offsetHeight;
    var oWidth=$opereteList.offsetWidth;
    var tTop=0;
    var tLeft=0;
    var h=$fileTable.offsetHeight;
    var w=$fileTable.offsetWidth;        
    while($fileTable.offsetParent!=null){
        tTop +=$fileTable.offsetTop;
        tLeft +=$fileTable.offsetLeft;
        $fileTable=$fileTable.offsetParent;
    }        
    var    tHeight=tTop+h;
    var tWidth=tLeft+w;
    if(eTop+oHeight<=tHeight){
        top=eTop-15;
    }else{
        top=eTop-(eTop+oHeight-tHeight);
    }
  if(eLeft+oWidth<=tWidth){
       left=eLeft;
  }else{
    left=eLeft-(eLeft+oWidth-tWidth);
  }      
$opereteList.style.top=top+'px';
$opereteList.style.left=left+'px';
 //判断当前是否为文件还是为文件夹 
var value=0;
value=$(obj).find('input[type="hidden"]').attr('value');
if(value==1){
    $('#share').show();
    $('#download').show();
    $('#close').show();
    $('#tags').show();
    $('#exchange').show();
    $('#copy').show();
    $('#edit').show();
    $('#erase').hide();
    $('#square').hide();
    $('#cloud').hide();
    $('#upload').hide();
}else if(value==0){
    $('#share').show();
    $('#download').show();
    $('#close').show();
    $('#tags').show();
    $('#exchange').show();
    $('#copy').show();
    $('#edit').hide();
    $('#erase').show();
    $('#square').show();
    $('#cloud').show();
    $('#upload').show();
}
clearEventBubble(event);
return false;

}
谷歌和ie都能正常显示 火狐就显示默认的右键菜单

clipboard.png

阅读 3.7k
1 个回答

oncontextmenu 事件在元素中用户右击鼠标时触发并打开上下文菜单。
注意:所有浏览器都支持 oncontextmenu 事件, contextmenu 元素只有 Firefox 浏览器支持。
http://www.runoob.com/jsref/e...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题