转发事件链接

时间:2016-01-25 10:37:44

标签: jquery

我有一个可点击的div,其中包含很多其他元素,但点击它时会打开一个页面。

我的一位用户询问是否可以点击此区域进行右键点击并显示正常链接(<a></a>)正常显示的上下文菜单,例如打开链接新标签/打开链接新窗口等等...中间鼠标点击打开也会自动显示在新页面上,这也很不错。

我无法将此元素更改为<a>标记,因为它会破坏其他功能。所以我有一个想法,将div中的鼠标事件转发到隐藏的链接元素,但我还没有走远......

你能否建议一种允许我实现这种功能的方法?

以下是点击转发的示例,但不起作用。

var a = $('a');

$('#aaa').on('click', function(e) {
  a.click(e);
});
#aaa {
  background: #f00;
  width: 200px;
  height: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<a href="http://stackoverflow.com" style="display:none;">Test</a>

<div id="aaa">
  blabla
</div>

1 个答案:

答案 0 :(得分:0)

首先,您需要为$('a')注册点击事件,然后您可以从其他元素触发该事件。

var a = $('a');
a.on('click',function(e){
  alert('i am clicked from out');
});
$('#aaa').on('click', function(e) {
  a.trigger('click');
});
#aaa {
  background: #f00;
  width: 200px;
  height: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<a href="http://stackoverflow.com" style="display:none;">Test</a>

<div id="aaa">
  blabla
</div>