jquery click对超链接不起作用

时间:2010-01-13 00:42:13

标签: jquery click hyperlink

我有一个简单的链接点击模拟,我想用jQuery做。从我读到的,这应该工作,但下面的代码不起作用。如果我做同样的事情或其他事件的一部分,也没有任何事情发生。想法?

<script type="text/javascript">
  $(function() {
    $("#lnk_0").click();
  });
</script>

<a id="lnk_0" href="http://mydomain.com/mypage.html">link</a>

5 个答案:

答案 0 :(得分:24)

请参阅click()

  

触发每个的click事件   匹配元素。

     

导致所有具有的功能   已被绑定到该点击事件   执行。

需要注意的重要一点是,重复点击链接。它只触发相关事件。如果您想更改位置:

var link = $("#link_0");
link.click();
window.location.href = link.attr("href");

但即使这只是一个近似值,因为它不能满足处理程序停止事件传播的需要。

答案 1 :(得分:8)

调用jQuery的click方法将调用您添加的任何click处理程序,但不会单击该链接。

你需要写:

window.location = $("#lnk_0").attr('href');

(这假设没有任何click事件处理程序)


编辑:在回复您的评论时,您可以调用仅限IE的click方法,如下所示:

if ($("#lnk_0")[0].click)
    $("#lnk_0")[0].click();
else
    window.location = $("#lnk_0").attr('href');

答案 2 :(得分:4)

要在使用jQuery覆盖时允许超链接功能(悬停,手形光标等),您可以执行以下操作:

<script>
    $(function() {
        $( "#dialog-modal" ).dialog({
            autoOpen: false,
            height: 320,
            modal: true
        });

        $( "#open-modal" ).click(function() {
            $( "#dialog-modal" ).dialog( "open" );
        });         
</script>
<a href="javascript:return true" id="open-modal">Open Modal</a>

<div id="dialog-modal" title="Hello World">
Hello
</div>

答案 3 :(得分:0)

做到这一点:

$('#lnk_0')[0].click();

答案 4 :(得分:-1)

我不确定它是否解决了您的确切问题,但这里有一段我​​用来模拟用户点击的代码:

var target = "...";

var e = jQuery.Event("click");

target.trigger(e);

if (!e.isDefaultPrevented() && target.attr("href"))
    window.location.href = target.attr('href');