2013-02-26 32 views
0
$(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

回答

0

我想是這樣的:

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

或者可能是這樣:

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

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

0

編輯噢,這是.one()應該已經做的。它可能只是沒有像其他人已經指出的那樣開火。

您可以設置一個標誌來指示函數是否已被先前調用過。

var isFirstCall = false; 
function check_reminder_date(){ 
    if (isFirstCall) { 
    isFirstCall = false; 
    //do stuff 
    } 
} 
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); 
+0

看起來不錯,如何使用我的代碼? – edekmax 2013-02-26 10:50:51