2011-03-31 69 views
0


我與右鍵點擊文本菜單刪除與右鼠標點擊一個div(塊文本菜單)

我嘗試刪除一個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

當你刪除參與事件的元素,導致起泡的條款和違約和這樣變得有點瘋狂的(即使沒有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後,立即事件完成,而不是在事件過程中。


題外話,但你不能取消所有的瀏覽器(歌劇想到的),你可能要因素納入你的UI決定contextmenu事件......

+0

謝謝,作品!
@離題,你確定嗎?它適用於我的Opera 10瀏覽器? – Peter 2011-03-31 09:20:26

+0

@彼得:哦,很好。我聽說他們正在考慮允許(我確信Opera 9沒有)。剛剛檢查了我的副本,這是一個首選項設置,所以它可能不可靠(雖然我無法想象很多人會改變它)。 – 2011-03-31 10:13:36

相關問題