我希望在以下情况下将参数传递给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?我尝试的方法不起作用。
我希望在以下情况下将参数传递给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".
}
}
trigger()
的 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')
会返回一个函数,内部函数只有在点击处理程序调用它时才执行,并且可以使用从外部传递给它的所有参数。
<script>
function edit_tab(val){
var prev_tab=$("#current_tab").html();
if(prev_tab==1){
$('.edit-basic-info').bind('click', function () {
fndosomething(a)
//pass value in that function and use it
});
}
}
</script>
你可以像这样再做一点点
var message = 'check';
$('button').click({msg: message},functionFoo);
function functionFoo(e){
alert(e.data.msg);
}
.click()
函数的函数(在这个问题中,函数名为'a',在原始问题中它被命名为'add_event')。 (还要注意,这个问题是由金徽章持有者关闭的,我更倾向于相信他们的意见,而不是你是否这是一个重复的问题) - cimmanona
传递给处理点击事件的函数,那么将参数a
传递给点击事件有什么意义呢? - cimmanon