jQuery模拟点击

Bwy*_*yss 18 javascript jquery

我想在页面加载时触发一个函数.有很多方法可以做到这一点. 但是,当我$('#button').click在我的函数前添加时,则getType无法识别该函数.例如:

$('#button').click(function getType(id) {
    //...some code
});
Run Code Online (Sandbox Code Playgroud)

错误:未定义getType

我究竟做错了什么?

只是为了澄清,在这种情况下我不能使用匿名函数.此外,对我来说无论我是否使用$(document).ready$(window).bind("load", function(),但使用这些我仍然得到"getType未定义"错误.

Ble*_*der 26

你要么让你的函数匿名:

$('#button').click(function() {
    //...some code
});
Run Code Online (Sandbox Code Playgroud)

或者传递函数本身:

function getType() {
    //...some code
}

$('#button').click(getType);
Run Code Online (Sandbox Code Playgroud)

如果您只想触发点击,请致电.click():

$('#button').click();
Run Code Online (Sandbox Code Playgroud)

此外,您的id参数将不是元素id.它将是click事件对象.要获取元素id,可以使用this以下命令引用单击的元素:

$('#button').click(function() {
    var id = this.id;
});
Run Code Online (Sandbox Code Playgroud)

我建议你阅读一些JavaScript和jQuery教程(按顺序).


Abu*_*sae 5

您正在使用内联表示法,因此,您应该使用匿名函数(无名称函数)

你的代码应该是:

$('#button').click(function() {
      // do your stuff here
    }
);
Run Code Online (Sandbox Code Playgroud)

除此之外,正如标题所说,你需要模拟一个click事件,对吧?如果是这样你最好使用类似的东西:

$('#button').on('click', function() {
  alert($(this).text());
});
// somewhere when you want to simulate the click you call the trigger function
$('#button').trigger('click');
Run Code Online (Sandbox Code Playgroud)

请参阅此处的文档