[英]'too much recursion' error when firing click() command on anchor
在我的代码中,我想单击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>
实际上,由于事件冒泡,这是一个无限循环。 在子元素上发生的事件将冒泡给父母。 在您的情况下,在a#linkId
上发生的单击将冒泡到父div
并触发onclick
处理程序(再次“单击” a#linkId
)。
尝试以下方法:
function clickLink(id) {
$('#' + id)[0].click();
}
可能仍然存在递归,但是问题是您的点击功能不起作用。 由于我们要离开该页面(单击指向google.com的链接),所以这并不重要。
有关click事件的解释,请参见Roman Starkov的评论: 如何使用jQuery触发对链接的单击
尝试使用来自jQuery的触发器
function clickLink(id) {
$('#' + id).trigger(”click”);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.