2011-06-23 54 views
2

我正在處理一個頁面,其中包含一些JS,我無法修改它正在加載到頁面,該頁面在單擊某個元素時觸發了一個函數。所以,我知道如何捕捉頁面上元素的右鍵點擊,但是有沒有辦法讓我明確地解除所有的右鍵點擊和右鍵單擊元素? 很顯然,如果像$(selector).unbind('rightclick)這樣的東西有效但它當然不會。 任何幫助將不勝感激。 謝謝。如何解除僅在jQuery中的右鍵單擊事件

編輯

一些澄清...我並不想阻止默認點擊右鍵出現在元素是正確的點擊瀏覽器菜單。我只是想刪除所有在右鍵單擊時觸發的東西。當我這樣做的目標是所有的點擊,它工作正常,並出現默認菜單。唯一的問題是,我也解除了所有左鍵點擊事件,這正是我想要避免的。

基本上,我嘗試解除綁定的這個事件阻止了上下文菜單的出現。所以我試圖解開這個,即使爲了展示它。

+0

你是如何綁定它的? – Chandu

+0

綁定它的代碼無法修改,但我相信它綁定了mousedown事件。 – Munzilla

回答

1
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title>jQuery disable right click easily</title> 
    <script language="javascript" type="text/javascript" 
     src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> 
    </script> 
    <script type="text/javascript" language="javascript"> 
     $(function() { 
      $(this).bind("contextmenu", function(e) { 
       e.preventDefault(); 
      }); 
     }); 
    </script> 
</head> 
<body> 
    Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. 
    Nam bibendum. In nulla tortor, elementum vel, tempor at, 
    varius non, purus. Mauris vitae nisl nec consectetuer. 
    Donec ipsum. Proin imperdiet est. Phasellus dapibus semper 
    urna. Pellentesque ornare, orci in consectetuer hendrerit, 
    urna elit eleifend nunc, ut consectetuer nisl felis ac diam. 
    Etiam non felis. Donec ut ante. In id eros. 
</body> 
</html> 

請參閱referencedemo

+0

我會編輯我的帖子,但我不一定要防止默認的瀏覽器菜單顯示,一旦元素被右鍵單擊。我只想解除之前附加的所有綁定點擊事件。當我解除所有點擊事件的綁定時,當元素右鍵單擊時觸發的函數被解除綁定,默認菜單顯示哪個是正確的。唯一的問題是我不想解除所有左鍵點擊。 – Munzilla

+0

那麼也許你應該只是綁定特定的元素,而不是做一個徹底的綁定? –

+0

我可以做到這一點,但左鍵點擊事件綁定到這些元素,我需要保持。就像我說的,這些功能最初是由我無法修改的腳本綁定的。所以我可以針對這些元素,但我似乎無法刪除綁定的右鍵單擊功能。 – Munzilla