jQuery模拟点击
我想在页面加载时触发一个函数。 有很多方法可以做到这一点。 但是,当我添加$('#button').click
我的函数前面,然后无法识别getType
函数。 例如:
$('#button').click(function getType(id) { //...some code });
错误:未定义getType
我究竟做错了什么?
只是为了澄清,在这种情况下我不能使用匿名函数。 另外,对我来说无论是使用$(document).ready
还是$(window).bind("load", function()
都没关系,但是使用这些我仍然得到“getType未定义”错误。
你要么让你的函数匿名:
$('#button').click(function() { //...some code });
或者传递函数本身:
function getType() { //...some code } $('#button').click(getType);
如果您只想触发点击,请调用.click()
:
$('#button').click();
此外,您的id
参数将不是元素的id
。 它将是click事件对象。 要获取元素的id
,可以使用this
引用单击的元素:
$('#button').click(function() { var id = this.id; });
我建议你阅读一些JavaScript和jQuery教程(按顺序)。
您正在使用内联表示法,因此,您应该使用匿名函数(无名称函数)
你的代码应该是:
$('#button').click(function() { // do your stuff here } );
除此之外 ,正如标题所说,你需要模拟click
事件,对吧? 如果是这样你最好使用类似的东西:
$('#button').on('click', function() { alert($(this).text()); }); // somewhere when you want to simulate the click you call the trigger function $('#button').trigger('click');
请参阅此处的文档
$('#button').click(function getType(id) { //...some code });
应该:
$('#button').click(function() { [...] code here } );
function() { }
是一个回调,当我点击某个元素时,代码必须做什么。
如果您有getType
函数,则可以将其作为回调传递:
$('#button').click(getType);
如果你想触发一个函数,当页面加载时,你可以这样做:
$('#button').trigger('click');
要么
function getType() { [...] code here } getType();
在元素上使用.trigger( event [, extraParameters ] )
。
extraParameters
键入:Array或PlainObject
传递给事件处理程序的其他参数。
额外的好处是您可以将数据传递给事件处理程序,而如果使用.click()
,则无法将数据分配给对象。
$("#target").trigger('click');
如果您要使用extraParameters
:
$( "#foo" ).on( "custom", function( event, param1, param2 ) { alert( param1 + "\n" + param2 ); }); $( "#foo").trigger( "custom", [ "Custom", "Event" ] );
.click()
方法需要回调函数。 所以你可以这样做:
//Define your function somewhere else function getType(id) { //...some code } $('#button').click(function() { getType($(this).attr('id')); //Execute it when its clicked. });
试试这个,id不能像你那样传递:
$('#button').click(function() { var id = this.id; //...some code });