2013-06-25 131 views
2

我想知道如何讓左鍵點擊在javascript中右鍵單擊。我想這樣做,通過左鍵單擊,出現上下文菜單。如何使左鍵單擊表現爲右鍵單擊?

問候。

+1

http://stackoverflow.com/questions/6250447/trigger-right-click – elclanrs

+0

請張貼您的代碼...?也請參考http://api.jquery.com/trigger/#example-5 – Hariharan

+0

感謝您的回覆,但我忘了說我沒有使用jQuery – user2302725

回答

2
  1. 到文檔
  2. 保存哪些因素是在得到了點擊
  3. 火災的事件「右擊」的DOM樹的最低(或任何其所謂的)添加一個點擊事件監聽到該元素與您從點擊事件中收到的x和y座標相同。

事件監聽器:

document.addEventListener('click', function(e) { 
    console.log(e); 
}); 

這給了你已經有很多的信息。你會得到鼠標點擊的x/y座標,更重要的是,你會得到點擊的元素:e.originalTarget(注意事件因瀏覽器而異)。

保存元素:

document.addEventListener('click', function(e) { 
    var originalElement = e.srcElement || e.originalTarget; 
}); 

和火右鍵單擊元素:

document.addEventListener('click', function(e) { 
    var originalElement = e.srcElement || e.originalTarget; 
    if (document.createEvent) { 
     var ev = document.createEvent('HTMLEvents'); 
     ev.initEvent('contextmenu', true, false); 
     originalElement .dispatchEvent(ev); 
    } else { // Internet Explorer 
     originalElement .fireEvent('oncontextmenu'); 
    } 
}); 

編輯:

它似乎不工作還沒有,所以考慮使用此方法在純js中點擊右鍵:How to generate a right-click event in all browsers

+0

你的意思是類似於:document.addEventListener(「click」,function(e){e.target.oncontextmenu = function(){}},false);? – user2302725

+0

我很樂意看到這個工作l – mplungjan

+0

它不起作用:P我需要的是通過左鍵點擊一個元素使上下文菜單出現:) – user2302725

0

試試這個

$(document).contextmenu(function (event) { 
     $(event.target).click(); 
     event.preventDefault(); 
    }) 
+0

謝謝,但我沒有使用jquery – user2302725

+0

這是相反的方式。點擊右鍵觸發左鍵單擊 – mplungjan