5

我看过很多关于这个的帖子,但没有一个像我想的那样奏效。

$(document).ready(function() {
   $('#link_to_content').tigger('click');
});

加载页面后,我想触发点击。我知道一旦页面加载就打开链接很奇怪,但在这种情况下它是有道理的。

我正在使用 jquery 1.7

4

3 回答 3

3

应该:

$(document).ready(function() {
   $('#link_to_content').trigger('click');
});

这里的工作示例:http: //jsfiddle.net/zpnQv/

编辑:

如果您想点击链接,您可以执行以下操作:

HTML:
<a href="http://www.yahoo.com/" id="link_to_content">Click Me</a>


JS:
$(document).ready(function () {

    $("#link_to_content").click(function (e) {
        e.preventDefault();

        var href = $(this).attr("href");

        alert("going to " + href);
        window.location = href;
    });
    $('#link_to_content').trigger('click');
});

示例:http: //jsbin.com/omudih/1/

于 2013-01-29T04:55:50.440 回答
1

jQuery不会点击链接。我自己的解释是,这有点安全风险,这或多或少是链接答案归结为的原因。

但是,正如链接的答案所述,您可以简单地选择 JavascriptHtmlDOMElement.click()它。

换句话说:$('#link_to_content')[0].click();

于 2013-01-29T04:56:47.287 回答
0

您尝试触发的点击处理程序很可能也通过 $(document).ready() 附加。可能发生的情况是您在附加处理程序之前触发了事件。解决方案是使用 setTimeout:

$("document").ready(function() {
setTimeout(function() {
    $("#link_to_content").trigger('click');
},10);
});

10ms 的延迟将导致函数在所有 $(document).ready() 处理程序被调用后立即运行。

或者

在 .load() 的回调函数中使用触发器;

您也可以使用 .on() 而不是 trigger()

$('div_to_load').load("#link_to_content",function(){
$("#link_to_content").trigger('click');
});

.on() 示例

$('div_to_click').on("click",".title",function(){
alert('sdfdsf');
});
于 2014-11-29T14:57:53.533 回答