我有这个正在侦听切换开关被更改并调用一些AJAX:
$('#notificationStatusBtn').on('switch-change', function(e, data) {
if(data.value == true){
$.get("myURL");
}else{
$.get("myURL");
}
})
这很好用,但我不太喜欢参数样式中的函数。因此,我尝试将其折光为:
$(document).ready(initListeners());
//Intialize button listeners
function initListeners(){
$('#notificationStatusBtn').on('switch-change', setNotificationStatus(e, data));
}
function setNotificationStatus(e, data){
if(data.value == true){
$.get("muURL",function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
}else{
$.get("muURL",function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
}
但是我重新编写的代码无法正常工作。
最佳答案
您的回调在setNotificationStatus中不正确。回调是对函数的引用,因此不需要变量e和数据。
尝试删除它们,这样您就可以:
$('#notificationStatusBtn').on('switch-change', setNotificationStatus);
您还在文档准备处理程序上犯了同样的错误:
$(document).ready(initListeners());
成为:
$(document).ready(initListeners);
调试时不要害怕使用警报语句,它有时可以用作快速而肮脏的检查。如果要保留调试信息,可以移至console.log。
HTH