点击时奇怪的链接行为

时间:2012-07-11 12:12:40

标签: javascript jquery html

我在第一次使用锚标记时遇到了不同的行为,它反对单击第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,但如果再次打开菜单然后单击。它按预期发射。

2 个答案:

答案 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');}
});

});