我喜歡jQueryUI datepicker是可自定義足以允許按鈕來觸發顯示datepicker,但不幸的是,它不允許您自定義您自己的標記。如何擴展jQueryUI datepicker來接受額外的參數?
如果我有標記,像這樣:
<span>
<input type="text" class="datepicker" />
</span>
<span>
<button class="datepicker-trigger">Open</button>
</span>
爲了得到它的日期選擇單擊按鈕時顯示,我必須執行以下代碼:
$('.datepicker').datepicker({
showOn:'none'
});
$('.datepicker-trigger').click(function() {
$('.datepicker').datepicker('show');
});
這裏的上面的代碼jsFiddle:http://jsfiddle.net/P9Qmu/
這是一切都很好,但我真的想要做的是通過t他datepicker函數一個額外的參數,指定一個對象或選擇器指示什麼元素應該觸發顯示。
例如,我真的希望能夠做到這一點:
$('.datepicker').datepicker({
showOn:'none',
trigger:'.datepicker-trigger'
});
我知道如何擴展jQuery來添加方法和創建插件,但我不知道如何(或者如果它可能)修改現有函數中允許的參數。
有沒有人知道我可以如何擴展$.datepicker
來實現我期望的目標或者至少將我指向正確的方向?任何幫助將非常感激。
謝謝安德魯,很好的回答!我很高興你展示了這兩種方法。 –
@PhilipWalton:沒問題! –
@AndrewWhitaker:即使1.8中的datepicker不使用widget工廠,是否可以通過'$ .widget'實際擴展datepicker?這[SO回答](http://stackoverflow.com/questions/2526592/how-to-subclass-a-specific-jqueryui-widget-method)似乎說不。 – superjos