[英]Passing variables to function using .on()
我有一個帶有自己的類的文本輸入字段: .my_ids
。 我正在嘗試使用jquery編寫腳本,以便每次輸入更改時,它將調用特定函數。 如果我不嘗試將變量傳遞給函數,這很容易:
$(document).on('change','.my_ids', testfunc);
function testfunc(){
alert("good");
}
每當輸入更改時,該功能都會向我發送警報; 效果很好。
但是,如果我嘗試將變量傳遞給警報功能,例如:
$(document).on('change','.my_ids', testfunc("hereismyvariable"));
function testfunc(myvariable){
alert(myvariable);
}
它在文檔加載時發送警報,然后在輸入更改時不發出警報。 我可能會缺少什么?
在這里,您要傳遞一個函數: $(document).on('change','.my_ids', testfunc);
在這里,您要傳遞函數的返回值: $(document).on('change','.my_ids', testfunc("hereismyvariable"));
因為testfunc("hereismyvariable") = undefined
(沒有返回值),所以您添加了一個具有未定義函數的事件處理程序。
你會這樣做
$(document).on('change','.my_ids', function() {
testfunc("hereismyvariable");
});
或者你可以這樣做
$(document).on('change','.my_ids', testfunc("hereismyvariable"));
function testfunc(myvariable){
return function() {
alert(myvariable);
}
}
()
運算符調用函數,因此將函數的返回值設置為處理程序,這似乎不是您想要的。 其他答案提出了幾種解決方案。 另一種選擇是使用data
參數:
$(document).on('change', '.my_ids', "hereismyvariable", testfunc);
function testfunc(event) {
console.log(event.data); // "hereismyvariable"
}
data
參數可以是任何東西。 event
對象的data
屬性引用傳遞的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.