jQuery在另一个事件中触发事件

时间:2013-12-16 18:03:42

标签: javascript jquery events click

我遇到了一个问题,我无法在点击事件处理程序中触发链接上的点击事件。请考虑这个例子:

<html>
<body>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<a id="a" href="#a">A</a>
<a id="b" href="#b">B</a>
<script>
    $('#a').click(function() {
        //setTimeout(function() {
            $('#b')[0].click();
        //}, 100);
    });
</script>
</body>
</html>

当用户点击A链接时,我希望他们在地址栏中看到#b,但事实并非如此。如果我删除它的评论它。为什么我不能在另一个事件中触发事件?是否真的需要setTimeout?

2 个答案:

答案 0 :(得分:2)

您必须防止默认行为:

DEMO

$('#a').click(function (e) {  
    e.preventDefault();
    $('#b')[0].click(); //call click method of DOM node
});

答案 1 :(得分:2)

尝试:

$('#a').click(function () {
    $('#b').click();
    return false;
});

DEMO here.