我有一个自动运行HTML脚本的JS文件。一个函数putToggleCall()应该在每次单击多个切换中的一个时运行,而是在文档准备好之前运行一次(基于我的其他函数)。我从我的函数中的console.log()中知道这一点。目标是简化代码,以便所有引导切换都可以在更改时使用一个PUT调用函数(即onclick)。
var toggles = {
"#rando": "random/url",
etc..
};
function putToggleCall(toggle_id) {
var value = $(toggle_id).prop("checked") ? 1:0;
console.log(value)
$.ajax({
url: BASE_URL + toggles[toggle_id],
type: "PUT"
}).done(
).fail(function(data,textStatus,errorThrown) {
alert(errorThrown);
});
};
for (var i = 0; i < Object.keys(toggles).length;i++) {
var toggle_id = Object.keys(toggles)[i]
$(toggle_id).change(putToggleCall(toggle_id));
})
答案 0 :(得分:2)
您正在调用该函数,而不是引用它。
您需要一个包装匿名函数
$(toggle_id).change(function() {
putToggleCall(toggle_id)
});
或仅引用功能
$(toggle_id).change(putToggleCall);
并找到另一种传递数据的方法(提示:它可用作this.id
,甚至只能在函数中使用this