使用jQuery在加载时点击链接

6
这是我代码的一个虚构示例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>    
        <title></title>
        <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
        <link rel="stylesheet" type="text/css" href=".css"/>
    </head>
    <body>
        <div>
            <a href="http://www.google.com" class="foo">YahOO</a>
        </div>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
       <script type="text/javascript">
            $("document").ready(function() {
                $("#foo").trigger('click');
            });
        </script>
    </body>
</html>

我希望页面加载后立即触发链接。上面的方法无效且不正确?应该如何做?
3个回答

17

您在元素上设置了类foo,而不是id,因此需要使用.foo。 此外,正如@JusticeErolin指出的那样,文档就绪处理程序不需要引号。 尝试这个:

$(document).ready(function() {
    $(".foo").trigger('click');
});

作为参考,$("#foo")将查找具有id="foo"的元素,在您的页面中应该只有一个这样的元素,因为ids应该是唯一的。

$(".foo")将查找具有class="foo"的元素,您可以拥有任意数量的这样的元素。


1
此外,使用$(document)而不带引号。 - Justice Erolin
<body> <div> <a href="http://www.google.com" class="foo">雅虎</a> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $(".foo").trigger('click'); }); </script> </body> 现在应该可以工作了吗?如果不行...??? - Paul
请纠正我,但是帖子的作者似乎试图在页面加载时打开网址"http://www.google.com"。 $(".foo").trigger('click'); 的作用是触发所有绑定到foo类的jQuery点击事件监听器。虽然您的答案是正确的,但我必须声明他似乎试图以这种方式操作将不起作用。(他可以尝试通过为具有foo类的元素添加点击事件侦听器并使用window.location.href = url来模拟它。(尽管我想不出这种奇怪的重定向方式的任何单一用途。)) - Terrabythia
嗯,您能解释一下用户访问页面时您真正想要做什么吗?应该发生什么事情? - Terrabythia
用户在页面A上单击链接。这将打开一个新窗口(弹出)页面B(window.open + document.write函数)。然后,页面A会“自动”单击页面B上的特定链接。请注意,此链接(a href)具有相关联的基础JavaScript。不要询问为什么的逻辑,很遗憾,它就是这样... - Paul
以上答案是正确的。我需要绑定一个部分以及点击其他部分。 - Paul

1

我尝试了许多选项,但最终找到了一个适合我的方案:

$(document).ready(function(){ 
     $('#upload-file')[0].click(function(){
     }); 
});

-2

您必须等待页面上的控件加载完成

将此添加到页面底部

<script>
$(document).ready(function(e){
$("#whateverElement").click();
});
</script>

2
这不是问题,因为jQuery的ready功能会等待页面完全加载。将JS代码放在页面末尾也不是必需的。请阅读被接受的答案。 - mcserep

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接