第一次使用此字段后,如何从此代码中删除功能?

问题描述:

$(document).ready(function(){ 
    $('#id_laufzeit_bis').datepicker().on('changeDate', recalculate_deadline); 
    $('#id_kuendigungsfrist').change(recalculate_deadline); 
    $('#id_kuendigungsfrist_type').change(recalculate_deadline); 

    $('#id_kuendigung_moeglichbis').change(check_reminder_date); 
    $('#id_erinnerung_am').datepicker().one('hide', check_reminder_date); 
}); 

如何从该代码中删除check_reminder_date函数后首次使用该字段? (#id_erinnerung_am第一次使用此字段后,如何从此代码中删除功能?

$('#id_erinnerung_am').datepicker().one('hide', check_reminder_date); 
+0

如果我理解正确的话,你希望被一次处理该事件,是吗? – 2013-02-26 09:22:37

+0

@Салман是的。只有一次 – edekmax 2013-02-26 09:23:46

我想是这样的:

$('#id_erinnerung_am').datepicker().one('click', check_reminder_date); 

或者可能是这样:

$('#id_erinnerung_am').datepicker().end().one('click', check_reminder_date); 

hide不是一个事件使用click代替。

编辑噢,这是.one()应该已经做的。它可能只是没有像其他人已经指出的那样开火。

您可以设置一个标志来指示函数是否已被先前调用过。

var isFirstCall = false; 
function check_reminder_date(){ 
    if (isFirstCall) { 
    isFirstCall = false; 
    //do stuff 
    } 
} 

使用这种伎俩来达到你想要什么:

//caching the object with id #id_erinnerung_am 
var id_erinnerung_am=$('#id_erinnerung_am'); 


//triggering an event on every close of the datepicker 

id_erinnerung_am.datepicker({onClose:function(){ 
id_erinnerung_am.trigger('datePicker.hidden'); 
}); 

//binding the event once with the function 'check_reminder_date', 
// this function will be executed only once 

id_erinnerung_am.one('datePicker.hidden', check_reminder_date); 
+0

看起来不错,如何使用我的代码? – edekmax 2013-02-26 10:50:51