在jQuery中使用参数调用函数
当我单击id为Button1的控件时,它调用一个名为getMakes的函数,我希望能够向它传递一个参数。在这种情况下,将接收数据的控件的id。我做错了什么在jQuery中使用参数调用函数,jquery,Jquery,当我单击id为Button1的控件时,它调用一个名为getMakes的函数,我希望能够向它传递一个参数。在这种情况下,将接收数据的控件的id。我做错了什么 $(function () { $('#Button1').click(getMakes("'#output'")) $('#buttonClear').click(function () { $('#output').html(''); }); }); functio
$(function () {
$('#Button1').click(getMakes("'#output'"))
$('#buttonClear').click(function () {
$('#output').html('');
});
});
function getMakes(myVar) {
$.ajax({
type: "POST",
url: "WebService.asmx/dbAccess2",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var response = msg.d;
$.each(response, function (index, value) {
$(myVar).append(new Option(value, index));
});
},
failure: function (msg) {
alert('failure');
}
});
}简单:
$('#Button1').click(function() {
getMakes('#output');
});
而不是
$('#Button1').click(getMakes("'#output'"))
。。(注意,结尾缺少分号)。。这样做:
$('#Button1').click(function() { getMakes("'#output'"); });
OJ和Jacob有正确的解决方案,但他们没有解释原因。你的代码
$('#Button1').click(getMakes("'#output'"))
传递getMakes
的返回值以单击。实际上,您当时正在调用该函数(在执行该行时,而不是在用户单击它时)。这不是您想要的,您实际上想要使用参数调用click事件上的函数。要做到这一点,您需要调用一个无参数函数,该函数反过来使用参数调用您的函数。最简单的方法是使用匿名函数,就像其他人建议的那样
还要注意的是,您的代码行有一些额外的引号,并且缺少分号。。不确定这是否是故意的