用鼠标右键单击删除div(块上下文菜单)

时间:2011-03-31 08:47:07

标签: jquery contextmenu right-click


我的右键单击上下文菜单有问题

我尝试删除div

$(".global_class").live('mousedown', function(e)
{
    if( (e.which == 3) ) 
    {
       // $('#'+this.id+'').remove();
       del_function(this.id);
    }
    e.preventDefault();
}).live('contextmenu', function(e){  e.preventDefault(); });

此代码有效但问题是$('#'+this.id+'').remove();

jquery删除div并且实时$(".global_class").live('mousedown', function(e)没有启动(结果 - >上下文菜单不会被阻止)。

希望有人可以帮助我。

提前谢谢!
彼得

1 个答案:

答案 0 :(得分:1)

当你删除事件中涉及的元素时,会产生冒泡和默认值等等,这有点松散(即使没有涉及jQuery的live)。你可以这样做:

$(".global_class").live('mousedown', function(e)
{
    var id = this.id;

    if( (e.which == 3) ) 
    {
       setTimeout(function() {
            del_function(id);
       }, 0);
    }
    e.preventDefault();
}).live('contextmenu', function(e){  e.preventDefault(); });

...以便您在事件结束后立即删除div ,而不是在活动期间删除。


偏离主题,但您无法取消所有浏览器上的contextmenu事件(想到Opera),您可能希望将其纳入您的UI决策......