2014-04-17 62 views
1

如何擴展jQuery Datepicker'beforeShow'函數?jQuery日期選擇器之前展開

我嘗試:

(function ($) { 
    var old = $.fn.datepicker.beforeShow; 
    $.fn.datepicker.beforeShow = function() { 

     var ret = old.apply(this, arguments); 
     alert("Extended functionality of beforeShow function!"); 



     return ret; 
    }; 
})(jQuery); 

UPDATE:

我想添加一些額外的功能,爲我所有datepickers等確認CSS類;我認爲一個好的方法是擴展beforeShow方法的功能,而不是將這個功能放在每個地方。

+0

u能clearify多一點? –

+0

@ShoaibChikate:我想添加一些邏輯beforeShow方法爲我所有的日期選擇器 –

回答

2

如果您使用的是jQuery UI日期選擇器,請使用$.datepicker.setDefaults()方法。

例如爲:

$.datepicker.setDefaults({ 
    beforeShow: function() { 
     if($(this).hasClass('test')) { 
      alert('got ya'); 
     } 

    } 
}); 

DEMO

編輯

根據您的意見我會委託click事件偵聽器的日期選擇器的元素。 否則,您將一直覆蓋原始屬性值。

$('.datepicker').on('click', function() { 
    if($(this).hasClass('test')) { 
     alert('got ya'); 
    } 
}); 

$('.datepicker').datepicker({ 
    beforeShow: function() { 
     //Still called? 
     console.log('test'); 
    } 
}); 

DEMO

+0

謝謝,但只有當我還沒有定義beforeShow方法的元素 –

+0

看到[您的示例修改](http:///jsfiddle.net/elsevero/vbLH3/2/) –

+1

@ el.severo查看我更新的答案。 – enyce12

相關問題