【问题标题】:How to trigger Click as a page loads using jquery如何使用 jquery 在页面加载时触发 Click
【发布时间】:2016-05-21 09:54:20
【问题描述】:

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

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

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

我正在使用 jquery 1.7

【问题讨论】:

  • 是帖子中的错字还是您的代码? tigger 应该是 trigger。除非你想让老虎在你的页面上上下跳动。
  • 哈哈,谢谢你的留言。

标签: javascript jquery click


【解决方案1】:

应该是:

$(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/

【讨论】:

  • 在使用 jQuery 时,点击实际上并没有跟随它们的 href,这可能是一个安全问题。此演示仅在理论上通过在单击处理程序中发出警报来起作用。
【解决方案2】:

jQuery won't click on links。我自己的解释是,这有点安全风险,这或多或少是链接答案归结为的原因。

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

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

【讨论】:

    【解决方案3】:

    您尝试触发的点击处理程序很可能也通过 $(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');
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-05
      • 2014-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多