首次使用此字段后如何从此代码中删除函数?

时间:2013-02-26 09:17:25

标签: javascript jquery

$(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);

3 个答案:

答案 0 :(得分:0)

我想是这样的:

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

或者可能是这个:

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

hide不是使用click的事件。

答案 1 :(得分:0)

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

您可以设置一个标志,指示该功能是否先前已被调用过。

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

答案 2 :(得分:0)

使用此技巧实现您的目标:

//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);