Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 右键单击上下文菜单在菜单上返回false后显示不正确_Php_Jquery_Contextmenu_Right Click - Fatal编程技术网

Php 右键单击上下文菜单在菜单上返回false后显示不正确

Php 右键单击上下文菜单在菜单上返回false后显示不正确,php,jquery,contextmenu,right-click,Php,Jquery,Contextmenu,Right Click,第一次张贴海报,但始终使用此网站作为示例。我的小问题是这个(我已经研究过了,但找不到解决问题的方法) 我有一个50多个名字的文本列表,每天一个项目(50+x7的矩阵),我希望能够右键单击每日文本(每天一个div),并显示每天与该项目相关的菜单。不过,这没什么大不了的,因为我需要单独标识每个项,并使用JS的DivID调用另一个函数,这就成了一件大事。我查看了其他jquery菜单选项,但不知道如何正确地动态检索名称 我遇到的问题不是创建菜单和捕获项目ID,而是右键单击后阻止ContextMenu出现

第一次张贴海报,但始终使用此网站作为示例。我的小问题是这个(我已经研究过了,但找不到解决问题的方法)

我有一个50多个名字的文本列表,每天一个项目(50+x7的矩阵),我希望能够右键单击每日文本(每天一个div),并显示每天与该项目相关的菜单。不过,这没什么大不了的,因为我需要单独标识每个项,并使用JS的DivID调用另一个函数,这就成了一件大事。我查看了其他jquery菜单选项,但不知道如何正确地动态检索名称

我遇到的问题不是创建菜单和捕获项目ID,而是右键单击后阻止ContextMenu出现

我希望页面在其他地方有右键单击菜单,但不在这些DIV元素上,这只是我正在创建的菜单

以下代码已被简化

这是我正在使用的JS:

function go(e,idname) 
    {
     var rightclick;
     e = e || window.event;
     if (e.which) rightclick = (e.which == 3);
     else if (e.button) rightclick = (e.button == 2);       
     var a = idname.id;
     a = (a.substring(11));  

     ShowContent('ToggleValueFloat');   // Display the DIV      

     $(document).ready(function() 
         {
          $('#ToggleValueFloat').html('MY MENU TEXT' + <a href="Javascript:ToggleDay(' + a + ');">EXAMPLE</a>);         
          return false;
         }); 

    return false; 
    }


function ShowContent(d) {
    if(d.length < 1) { return; }
    var dd = document.getElementById(d);
    AssignPosition(dd);
    dd.style.display = "block";
}
函数go(e,idname)
{
var右键单击;
e=e | | window.event;
如果(e.which)右击=(e.which==3);
如果(e.button)右击=(e.button==2),则为else;
var a=idname.id;
a=(a.子串(11));
ShowContent('ToggleValueFloat');//显示DIV
$(文档).ready(函数()
{
$('#ToggleValueFloat').html('我的菜单文本'+);
返回false;
}); 
返回false;
}
功能显示内容(d){
如果(d.length<1){return;}
var dd=document.getElementById(d);
分配位置(dd);
dd.style.display=“块”;
}
这是我在示例中使用的PHP:

echo  '<a id="togglePopup' . (int)$arrayEId[$allEntries] . '" onmousedown="go(event,this); return false;">example</a>';
echo“示例”;
这是我用来展示的DIV

<div id="ToggleValueFloat" style="display:none;  position:absolute;  border-style: solid;  background-color: white;  padding: 5px;"></div>

我试图让它每次都返回false,这样上下文菜单就不会显示,但它不起作用。我可以完全禁用页面上的右键单击,但这将证明比以往任何时候都更没有效率


任何想法/帮助都会很好!我有很多选择。谢谢,史蒂夫首先,这是一个问题:

 if (!e) var e = window.event;
由于所有变量声明都被挂起,因此如下所示:

 var e;
 if (!e) e = window.event;
您有一个名为
e
的参数,现在您正在创建一个同名的局部变量,该变量将覆盖它。如果参数
e
未定义,则应将该行替换为该行以重新分配参数:

e = e || window.event;

至于你的目标定位问题,你为什么不在鼠标指向的事件中观察对象并弄清楚(在显示菜单之前)如果目标对象是您希望显示菜单的对象或不希望显示菜单的对象,则仅当单击目标时才调用显示菜单的代码。

如果没有适当的缩进,您的代码很难读取。抱歉,我很难用软件上的代码标签把它放进去,你只要把每一行缩进四个空格,它就会保留你的其他缩进并显示为代码。编辑器中的
{}
工具将一个块缩进四个空格以显示为代码。感谢您的快速提示。我已经为此修改了代码。:)但是,我的菜单创建得很好,但通常的右键单击浏览器菜单显示在我创建的菜单顶部,它不应该这样做,因为我告诉它“返回false”。。。?浏览器菜单根本不应该显示。啊,你没有说你的问题出在标准浏览器右键单击菜单上(或者我不明白)。有些浏览器不再允许您控制右键单击菜单,有些浏览器有一个首选项设置来确定是否允许网页取消右键单击菜单。默认情况下,我认为最新版本的Chrome和Firefox都不会让网页打败标准的右键单击菜单。甚至谷歌地图也有这个问题。奇怪的是,我可以把这个。。。。。“警报('Rightclick:'+Rightclick);”…..在鼠标检测到来自..的消息后。。。。。"" ..... 我没有浏览器菜单。。。奇怪的我用的是最新的FF。显示您可以在何处控制网页阻止/替换Firefox中右键单击菜单的功能。感谢您在这方面的帮助。在你提到了整个浏览器的右键单击控件之后,我意识到一定有另一种方法可以做到这一点,所以我找到了这个,并对它进行了修改,以满足我最终的需要。