javascript - 如果用户单击浏览器的上下文菜单,则会发生 Node.js 事件

标签 javascript jquery

如果用户使用浏览器的上下文菜单并单击在新选项卡中打开链接选项,如何slideUp nav元素?

$('.title').on('click', function(){
  $('.nav').slideDown();
});

$('.nav').on('click', function(){
  $(this).slideUp();
});
.title{cursor:pointer;}
.nav{display:none;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='title'>MENU</div>
<div class='nav'>
<a href = 'https://google.com'>Google</a>
</div>

最佳答案

实际上,上下文菜单并没有给你100%接受的答案,你可以停止元素右键单击显示上下文菜单。您在此处显示自定义菜单代码,也许对您有帮助。链接:http://jsfiddle.net/6cqhsfvL/1/或以上代码

$('.title').on('click', function(){
	  $('.nav').slideDown();
	});

	$('.nav').on('click', function(){
		$(this).slideUp();
	});

	$('.nav a').on("mousedown",function(e){
		e.preventDefault();
		if(event.which==3){
			$('#item li a').attr('href', $(this).attr('href'));
		}
	});

	$('.nav a').bind("contextmenu",function(e){
	  	e.preventDefault();
		$("#cntnr").css("left",e.pageX);
		$("#cntnr").css("top",e.pageY);     
		$("#cntnr").fadeIn(200,startFocusOut());    
	});
    $("#items").on('click', 'a', function(event) {
	    event.stopPropagation();
	    $('.nav').slideUp();
	    $("#cntnr").hide(); 
	    window.open($(this).attr('href'), '_blank'  );
    });

	function startFocusOut(){
	  $(document).on("click",function(){
	  $("#cntnr").hide();        
	  $(document).off("click");
	  });
	}
.title{cursor:pointer;}
.nav{display:none;}

#items{
  list-style:none;
  margin:0px;
  margin-top:4px;
  padding-left:10px;
  padding-right:10px;
  padding-bottom:3px;
  font-size:17px;
  color: #333333;
}
#cntnr{
  display:none;
  position:fixed;
  border:1px solid #B2B2B2;
  width:150px;      background:#F9F9F9;
  box-shadow: 3px 3px 2px #E9E9E9;
  border-radius:4px;
}
li{
  padding: 3px;
  padding-left:10px;
}
#items :hover{
   color: white;
  background:#284570;
  border-radius:2px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
	<div class='title'>MENU</div>
	<div class='nav'>
	<a href = 'https://google.com'>Google</a>
	</div>

	<div id='cntnr'>
	    <ul id='items'>
	    	<li><a target="_blank" href="#">Open new tab</a></li>
	    </ul>
	 </div>

关于javascript - 如果用户单击浏览器的上下文菜单,则会发生 Node.js 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54231462/

相关文章:

javascript - 如果对象值为 true 并且键在数组中,则获取对象键。 JavaScript

javascript - 使用 jquery 验证文本框

javascript - jQuery 动画在运行时触发回调两次

javascript - 使 Javascript-search-function 快速

javascript - 面向对象的 JavaScript 中的私有(private)函数

javascript - 在构造函数中的任何内容之前运行链式方法?

javascript - 在哪里使用 jQuery.noConflict

javascript - 格式化由 html 类组成的数组

jquery - 如何使用 jquery Tiny Scrollbar 应用水平和垂直滚动条

javascript - 客户 Accordion ,不使用 jquery ui