我在第一次使用锚标记时遇到了不同的行为,它反对单击第2,第3,第4 ......单击。
将href值设置为" "
,我在第一次点击时没有得到HTTP GET。我看不出为什么第一次点击应该具有除点击否2(及以上)之外的任何其他行为。
HTML:
<div id="container"></div>
<div id="menu">
<ul>
<li><a href="" onclick='alert("clicked")'>Menu Item 1</a></li>
<li><a href="" onclick='alert("clicked")'>Menu Item 2</a></li>
</ul>
</div>
使用Javascript:
$(document).ready(function() {
$("#container").contextMenu({
menu: 'menu'
});
});
我使用jquery插件创建一个右键单击上下文菜单
这里有Fiddle来说明问题。 第一次单击不会触发HTTP GET,但如果再次打开菜单然后单击。它按预期发射。
答案 0 :(得分:2)
在菜单项的单击处理程序(当前是对alert()的调用)中,您应该event.preventDefault();
停止浏览器跟踪链接。即使href=""
为空,浏览器仍然认为它是对新页面的调用并重新加载页面。
您还可以使用href="#"
的旧锚标记技术。这不会导致浏览器加载新的URL。
答案 1 :(得分:0)
使用onSelect事件为contextMenu做你的魔术。
$(document).ready(function(){
$("#container").contextMenu({
menu: 'menu',
onSelect: function(e) { alert('this is where you want your logic');}
});
});