jQuery的ContextMenu事件不工作在IOS 8.2

我使用.html示例中的contextMenu事件,当我长按DIV时它会被触发,但是现在它不工作。 是最新的IOS 8.2版本中的东西坏了。 这里是示例代码,

<head> <title></title> <script src="Scripts/jquery-1.9.1.min.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#content").on("contextmenu", function () { alert("CM"); }); }); </script> </head> <body> <div id="content" style="height:300px; width:300px; background-color:gray;"></div> </body> 

这是工作示例

http://jsfiddle.net/4zu1ckgg/

请有人帮我这个。

基本上, 在iOS上,触摸事件不是模拟鼠标事件 。 使用触摸事件代替:“touchstart”,“touchmove”和“touchend”。

在你的情况下,在iOS上,与Android相反,当长时间触摸屏幕时,不会触发“contextmenu”。 要定制iOS上的长时间触摸,你应该使用像这样的东西:

 // Timer for long touch detection var timerLongTouch; // Long touch flag for preventing "normal touch event" trigger when long touch ends var longTouch = false; $(touchableElement) .on("touchstart", function(event){ // Prevent default behavior event.preventDefault(); // Test that the touch is correctly detected alert("touchstart event"); // Timer for long touch detection timerLongTouch = setTimeout(function() { // Flag for preventing "normal touch event" trigger when touch ends. longTouch = true; // Test long touch detection (remove previous alert to test it correctly) alert("long mousedown"); }, 1000); }) .on("touchmove", function(event){ // Prevent default behavior event.preventDefault(); // If timerLongTouch is still running, then this is not a long touch // (there is a move) so stop the timer clearTimeout(timerLongTouch); if(longTouch){ longTouch = false; // Do here stuff linked to longTouch move } else { // Do here stuff linked to "normal" touch move } }) .on("touchend", function(){ // Prevent default behavior event.preventDefault(); // If timerLongTouch is still running, then this is not a long touch // so stop the timer clearTimeout(timerLongTouch); if(longTouch){ longTouch = false; // Do here stuff linked to long touch end // (if different from stuff done on long touch detection) } else { // Do here stuff linked to "normal" touch move } }); 

这里是一个解释(除其他外)触摸事件不作为鼠标事件在每个操作系统上的页面: http : //www.html5rocks.com/en/mobile/touchandmouse/

希望这会有所帮助,花了很长时间才弄清楚;)

Interesting Posts