JS在加载时点击Jquery函数

JS click in a Jquery function on load

本文关键字:Jquery 函数 加载 JS      更新时间:2023-09-26

我有一个JS函数,我想在页面加载时自动点击jquery.click链接。

我怎样才能让它工作?

Fiddle

当页面加载时,我想看到警报,不需要点击链接。

js

window.onload = function(){
document.getElementsByClassName("c").click();
}

$(".c").click(function(){
    alert("ok");
});

html:

<a href="#" class="c">test</a>

您需要在trigger事件之前进行attach click事件。

演示

更改

document.getElementsByClassName("c")

document.getElementsByClassName("c")[0]

使用以下代码

$(document).ready(function(){
      $(".c").click(function(){
         alert("ok");
      });
 });
 window.onload = function(){
      document.getElementsByClassName("c")[0].click();
      // Or use jQuery trigger 
      // $(".c").trigger('click') 
 }

演示此处

触发 document.ready 上的click

$('document').ready(function(){
    $(".c").click(function(){
        alert("ok");
    });
    $('.c').trigger('click');
});

创建处理程序后立即触发事件

$(function(){
    $(".c").click(function(){
        alert("ok");
    }).click();
});

DEMO

尝试这种方式

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

getElementsByClassName返回具有所有给定类名的所有子元素的类似数组的对象。当对文档对象调用时,将搜索完整的文档,包括根节点。

要分配click处理程序,您必须遍历nodelist,或者只将事件分配给第一个element

试试这个:

window.onload = function () {
    document.getElementsByClassName("c")[0].click();
};
$(".c").click(function () {
    alert("ok");
});

因此,您可以将警报推送到一个函数中:

function callAlert() {
   alert('a');
}

你可以这样更改事件点击:

$(".c").click(callAlert);

最后,当页面加载时,您可以调用警报函数,如下所示:

$('document').ready(function(){
    callAlert(); // call here
});

代码:

$('document').ready(function(){
    callAlert(); 
    $(".c").click(callAlert);
});
function callAlert() {
    alert('a');
}