当我单击一个id为Button1的控件时,它调用一个名为getMakes的函数,我希望能够将参数传递给它.在这种情况下,将接收数据的控件的id.我究竟做错了什么?
$(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');
}
});
Run Code Online (Sandbox Code Playgroud)
}
OJ和雅各布有正确的解决方案,但他们没有解释原因.你的代码,
$('#Button1').click(getMakes("'#output'"))
Run Code Online (Sandbox Code Playgroud)
传递返回值getMakes以单击.你实际上正在调用该函数(当该行被执行时 - 而不是当用户点击它时).这不是你想要的,你实际上想用参数调用click事件上的函数.要做到这一点,你需要调用一个无参数函数,然后用你的参数调用你的函数.最简单的方法是使用匿名功能,就像其他人建议的那样.
另请注意,您的代码行有一些额外的引号并且缺少分号.不确定这是否是故意的.