2016-05-22 11 views
2

idをtimepicker関数に渡すよりクリーンな方法があるかどうかは不思議です。ここで私が持っているものです。jqueryにidを渡すクリーナーの方法

JS:

function timedrop(id){ 
    $("#" + id).timepicker(); 
    $("#" + id).timepicker('option', { 'minTime': '9:00am', 'maxTime': 
             '9:00pm', 'timeFormat': 'h:i A' }); 
} 

HTML:要するに

<input id="basicExample" onclick="timedrop(this.id);" type="text" class="time ui-timepicker-input" autocomplete="off"> 
+1

あなたのJSをあなたのHTMLから分離するのがより簡単な方法です(エラーの原因となった場所を追跡しやすくする) – blex

+1

コードを使用するだけで、クラスやIDやonclickを気にすることなく、 ( '.ui-timepicker-input')。timepicker({/ * options object/*}) ' – charlietfl

+0

また、あなたが持っているコードは、クリックごとに新しいタイムピッカを設定します。ページの読み込み時にのみ行うことができます。 – blex

答えて

3

なし。それはおそらく最善の方法です。

HTML::

<input id="basicExample" type="text" class="time ui-timepicker-input special-time" autocomplete="off"> 

JS:

$('.special-time').click(function(){ 
    $(this).timepicker('option', { 'minTime': '9:00am', 'maxTime': 
              '9:00pm', 'timeFormat': 'h:i A' }); 
}); 
+0

あなたの答えは私より優れているので、私は私のものを削除しています。議論の余地はありませんが、OPの質問に関しては、あなたのことは間違いなくOPよりはるかにクリーンです。 #idを渡すことはできません。 –

0

あなたの場合しかし、あなたは(あなたにはJavaScriptを毎回実行する必要はありません)カスタムクラスを使用して、より効率的なコードを作ることができますその後、thisを渡すと動作するはずです、どこか他のIDを必要としません:

function timedrop(elem){ 
    $(elem).timepicker(); 
    $(elem).timepicker('option', { 'minTime': '9:00am', 'maxTime': 
             '9:00pm', 'timeFormat': 'h:i A' }); 
} 

<input id="basicExample" onclick="timedrop(this);" type="text" 
     class="time ui-timepicker-input" autocomplete="off"> 

EDIT:もちろんを他の人からの助言があります。私の答えは、コードをよりきれいに見せることです。

関連する問題