Javascript 多次调用回调函数

Javascript 多次调用回调函数,javascript,jquery,callback,Javascript,Jquery,Callback,我正在尝试为我的应用程序制作日历,当我第一次单击日期时,回调方法将按预期调用1次,但当我第二次单击日期中的任何日期时,回调将被调用2次,应该调用1次,依此类推 单击日历中的某一天时: onDayClick = function(date, jsEvent, view){ //alert('Date: ' + date.format() + '\n' + 'Current View: ' + view.name + '\n' + 'Make a form here.'); //co

我正在尝试为我的应用程序制作日历,当我第一次单击日期时,回调方法将按预期调用1次,但当我第二次单击日期中的任何日期时,回调将被调用2次,应该调用1次,依此类推

单击日历中的某一天时:

onDayClick = function(date, jsEvent, view){
    //alert('Date: ' + date.format() + '\n' + 'Current View: ' + view.name + '\n' + 'Make a form here.');
    //console.log('Called onDayClick ' + global_counter++);
    createForm(function(form){
        console.log('createForm Callback');
        event = {
            start : date                
        }
        onModalRendered(event);
    });
    //$(this).css('background-color', 'red');
}


createForm = function(cb){
    console.log('createForm');
    var form = $('#myModal');
    form.modal('show');
    form.on('shown.bs.modal', function(){
        cb(form);       
    }); 
    return false;
}
控制台日志输出如下:

Called onDayClick 0 //day clicked in calendar (say, 5 Sep) 
createForm 
createForm Callback
onModalRendered 
Called onDayClick 1 //day clicked in calendar (say, 6 Sep) here callback should be called 1 time
createForm 
createForm Callback 
onModalRendered 
createForm Callback 
onModalRendered 

我觉得我在使用回调函数时犯了一些错误。请指出我的错误。

你能在JSFIDLE上重现这个问题吗?我没有使用JSFIDLE。可以试一试。啊,我找到了罪魁祸首,它是form.on'show.bs.modal',函数{cbform;};多次注册,导致内联函数的多次调用,从而导致多个回调函数调用。