在我的代码中,我想单击div并使其在指定的元素ID上触发click()
,但是我却遇到了这种递归错误,就像在无限循环中一样。
function clickLink(id) {
$('#' + id).click();
}
.theDiv {
border: 1px solid red;
width: 200px;
height: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
click the div, but not on the link
<div class="theDiv" onclick="clickLink('linkId')">
<a href="http://www.google.com" id="linkId">i am a link</a>
</div>
答案 0 :(得分:2)
由于事件冒泡,这实际上是一个无限循环。在子元素上发生的事件将冒泡给父母。在您的情况下,在a#linkId
上发生的单击将冒泡到父div
并触发onclick
处理程序(再次“单击” a#linkId
)。
答案 1 :(得分:0)
尝试以下方法:
[L]
可能仍然存在递归,但是问题是您的点击功能不起作用。由于我们要离开该页面(单击指向google.com的链接),所以这并不重要。
有关单击事件的解释,请参见Roman Starkov的评论: How to trigger a click on a link using jQuery
答案 2 :(得分:0)
尝试使用jquery中的触发器
function clickLink(id) {
$('#' + id).trigger(”click”);
}