使用.trigger单击div模拟单击锚链接不起作用

时间:2016-12-07 10:04:37

标签: jquery

我已将div's第二Id分配为<a>标记的类。当您点击此div时,它会模拟点击<a>标记。

$(".component-data").click(function(){
  var partNo = $(this).attr('id').split(' ')[1];
  var tableEQV = ("'a."+partNo+"'");
  $(tableEQV).trigger("click");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="58 59" class="component-data">comp data(click me for google)</div>
<div id="60 61" class="component-data">comp data(click me for facebook)</div>
<br />
<a class="59" href="http://www.google.com">link to simulate going to google</a>
<br />
<a class="61" href="http://www.facebook.com">link to simulate going to facebook</a>

2 个答案:

答案 0 :(得分:0)

.trigger("click"); 仅适用于使用jquery附加的点击事件。并且它不会模拟对锚标记的点击,就好像它是真正的鼠标点击一样。

  

通过JavaScript触发点击不会打开超链接。这是内置于浏览器中的安全措施。

解决方案:使用.click()

$(tableEQV)[0].click();

请注意,这会调用DOM本机点击方法,而不是jQuery点击方法,这就是您所需要的。

答案 1 :(得分:0)

您对a标记的引用不正确。

问题代码:

 var tableEQV = ("'a."+partNo+"'");

应该是,

var tableEQV = "a."+partNo;

&#13;
&#13;
$(".component-data").click(function() {
  var partNo = $(this).attr('id').split(' ')[1];
  //form correct a tag with class selector
  var tableEQV = "a." + partNo;
  //trigger click on anchor tag 
  $(tableEQV).trigger("click");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="58 59" class="component-data">comp data(click me for google)</div>
<div id="60 61" class="component-data">comp data(click me for facebook)</div>
<br />
<a class="59" href="http://www.google.com">link to simulate going to google</a>
<br />
<a class="61" href="http://www.facebook.com">link to simulate going to facebook</a>
&#13;
&#13;
&#13;