2011-07-12 6 views
2

jQuery UIのDate Pickerプラグインに拡張プラグインを作成すると、ほとんどの場合、使用するオプションを標準化するだけでなく、カレンダーを開くためのアイコンを追加することもできます。プラグインがアイコントリガを使用していることに気付いていますが、スプライトイメージにアイコンを使用していて単なるアイコンの追加リクエストを望んでいないため、これは機能しません。jQuery UIにアイコンを追加できないDatepicker

私のプラグインコード:

(function($) { 
    $.extend($.fn, { 
     DatePicker: function() { 
      return this.each(function() { 
       $(this).datepicker({ 
        showOtherMonths: true, 
        selectOtherMonths: true 
       }).after(
        $("<a/>", { "href": "javascript:void(0)", "class": "icon-calendar", "text": "select date" }).click(function() { 
         $(this).prev("input").datepicker("show") 
        }) 
       ) 
      }) 
     } 
    }) 
})(jQuery); 

これは非常にコードをテストするために、アイコンを生産する以外everthingのために働く、私は、プラグインの初期化後の後の機能を追加しました。

$(".date").DatePicker().after(
    $("<a/>", { "href": "javascript:void(0)", "class": "icon-calendar", "text": "select date" }).click(function() { 
     $(this).prev("input").datepicker("show") 
    }) 
) 

これは、このコードがカレンダーアイコンを生成するために動作するため、実際に私に難解なところです。私はそれをこのように動作させることができますが、エクステンションプラグインの一部であり、プラグインのさまざまな実装のすべてで繰り返されるべきではないので、明らかに良い選択ではありません。

+0

をお試しくださいユーティリティUI要素J Sクラス私は少なくとも私はこれ以上考える必要はなく、jQueryがスプライトと一緒にこのようなことを行うと、私は変更する場所が1つしかありません。 – umassthrower

答えて

0

ので.datepicker({...

 showOn: "button", 
     buttonImage: "images/calendar.gif", 
     buttonImageOnly: true 

にこれを追加します。

$.extend($.fn, { 
    DatePicker: function() { 
     return this.each(function() { 
      $(this).datepicker({ 
       showOtherMonths: true, 
       selectOtherMonths: true, 
       showOn: "button", 
       buttonImage: "images/calendar.gif", 
       buttonImageOnly: true 
      }); 
     }); 
    } 
}); 

はフィドル:http://jsfiddle.net/maniator/D7tKe/

+0

私は自分のポストで "私はプラグインのアイコントリガーの使用を認識していますが、スプライトイメージにアイコンを使用していて、単なるアイコンの追加要求を望まないので、これは機能しません" –

0

まあ、私はあなたのハックを使用して終了し、それを貼り付ける

$('.ui-datepicker').append('<a href="#">My link</a>'); 
+0

。 append( "select date"); //それを追加しますが、無効なマークアップであるために表示されません入力が自己終了すると仮定します –

+0

.after( "select date"); //まだ動作しません。何も表示されません。 –

+0

.parent()。append( "select date")//これは入力として常に試みられる親要素の終わりにあります。その場合、まだ動作しません –

関連する問題