当我单击一个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');
}
});
}
答案 0 :(得分:5)
$('#Button1').click(getMakes("'#output'"))
传递getMakes
的返回值以进行单击。你实际上正在调用该函数(当该行被执行时 - 而不是当用户点击它时)。这不是你想要的,你实际上想用参数调用click事件上的函数。要做到这一点,你需要调用一个无参数函数,然后用你的参数调用你的函数。最简单的方法是使用匿名功能,就像其他人建议的那样。
另请注意,您的代码行有一些额外的引号并且缺少分号。不确定这是否是故意的。
答案 1 :(得分:4)
简单:
$('#Button1').click(function() {
getMakes('#output');
});
答案 2 :(得分:0)
而不是
$('#Button1').click(getMakes("'#output'"))
..(注意你最后错过了一个分号)..这样做:
$('#Button1').click(function() { getMakes("'#output'"); });