0

我在第一次点击带有锚标签时得到了不同的行为,它与点击第二、第三、第四..点击相反。

将 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,但如果再次打开菜单然后单击。它按预期启动。

4

2 回答 2

2

在菜单项的单击处理程序(当前是对 alert() 的调用)中,您应该event.preventDefault();阻止浏览器跟踪链接。即使href=""是空的,浏览器仍然认为这是对新页面的调用并重新加载页面。

您还可以使用旧的空锚标记技术,使用href="#". 这不会导致浏览器加载新的 URL。

于 2012-07-11T12:21:25.840 回答
0

使用 contextMenu 的 onSelect 事件来发挥你的作用。

$(文档).ready(函数() {

$("#container").contextMenu({
    menu: 'menu',
    onSelect: function(e) { alert('this is where you want your logic');}
});

});​</p>

于 2012-07-12T12:33:09.867 回答