如何在.click()函数中传递参数?
我希望在以下情况下将参数传递给click()
处理函数:
function edit_tab(val){ var prev_tab = $("#current_tab").html(); if (prev_tab == 1) { $('.edit-basic-info').click(a); // here I want to pass some argument "a". } }
如何在上面的代码中传递参数a? 我试图做的方式不起作用。
您可以使用trigger()'s
extraParameters
将其他参数传递给您的处理程序:
来自trigger()
文档:
extraParameters类型:Array或PlainObject要传递给事件处理程序的其他参数。
示例(也来自文档):
$( "#foo" ).on( "custom", function( event, param1, param2 ) { alert( param1 + "\n" + param2 ); }); $( "#foo").trigger( "custom", [ "Custom", "Event" ] );
使用闭包:
function doSomething(myParam) { return function(event) { // Use both myParam and event here }; }
并在您的事件处理程序中:
$('#foo').on('click', doSomething('parameter')); // Works fine
这样做的原因是对doSomething('parameter')
的调用返回一个函数 ,内部函数在click处理程序调用之前不会执行,并且它可以使用从外部传递给它的所有参数。
你可以这样做更多
var message = 'check'; $('button').click({msg: message},functionFoo); function functionFoo(e){ alert(e.data.msg); }