javascript - 给元素添加oncontextmenu事件 在火狐浏览器下不执行函数?
黄舟
黄舟 2017-04-11 13:25:09
0
1
674

/动态生成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都能正常显示 火狐就显示默认的右键菜单

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
黄舟

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!