2016-05-22 5 views
2

Ich frage mich nur, ob es eine sauberere Möglichkeit gibt, ID in Timepicker-Funktion zu übergeben. Hier ist, was ich habe:Cleaner Weg ID in jquery zu übergeben

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

Ein sauberer Weg wäre, Ihre JS von Ihrem HTML zu trennen (einfacher zu pflegen und zu verfolgen, wo Fehler herkommen) – blex

+1

Code wäre viel einfacher nur mit Klasse und keine Sorge über ID oder onclick und verwenden $ ('.ui-timepicker-input'). timepicker ({/ * options object/*}) ' – charlietfl

+0

Der Code, den Sie haben, wird bei jedem Klick einen neuen Zeitpicker auslösen. Das möchten Sie vielleicht nur beim Laden der Seite tun. – blex

Antwort

3

Kurz: kein. Das ist wahrscheinlich der beste Weg. Aber Sie können Ihren Code effizienter unter Verwendung von benutzerdefinierten Klassen machen (Sie werden das JavaScript jedes Mal ausführen müssen):

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

Ihre Antwort ist besser als meine, also lösche ich meine. Nicht um streitsüchtig zu sein, aber was die Frage von OP betrifft, ist Ihre auf jeden Fall viel sauberer als OPs. Es übergibt einfach nicht die #id, weil es nicht muss. –

0

Wenn Sie nirgendwo sonst brauchen id, dann this vorbei funktionieren sollte:

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: natürlich Es gibt einige gute Ratschläge von anderen. Meine Antwort ist nur, um den Code sauberer zu machen.

Verwandte Themen