2013-03-11 6 views
6

Mam kod poniżej na stronie, jeśli jeden z dwóch pól tekstowych zmienia się funkcja zostaje wywołana z wartościami obu.
Kod działa doskonale, ale w interesie wydajności zastanawiałem się, czy mogę go sprowadzić do pojedynczego bloku kodu.jedno wywołanie na zmianę jednego z dwóch wejść

$('#popfrom').change(function(){ 
    var popfrom = $('#popfrom').val(); 
    var poptill = $('#poptill').val(); 

    defineDate(popfrom, poptill); 
}); 

$('#poptill').change(function(){ 
    var popfrom = $('#popfrom').val(); 
    var poptill = $('#poptill').val(); 

    defineDate(popfrom, poptill); 
}); 
+0

można dać wejść do tej samej klasy, a potem po prostu zadzwonić $ (”. someClass '). change – Pete

+0

Powinienem wspomnieć, że wiem, że mogę "połączyć" je przez klasę, ale chcę użyć jego id. – nhalink

Odpowiedz

12

JQuery pozwala wielu selektorów, oddzielonych przecinkami:

$('#popfrom, #poptill').change(function(){ ... 

Jeśli okaże się, trzeba pracować z wieloma elementami, to często łatwiej użyć nazwy klasy zamiast. Dodaj klasę „popfields” do swoich wejść i można po prostu użyć:

$('.popfields').change(function(){ ... 
+0

Oczywiście ... jak mogę zapomnieć!?! Te dwa elementy mają już id, których używam w większym skrypcie i chcę je rozpoznawać, dlatego użyję rozdzielonego przecinkami rozwiązania. – nhalink

4

dodać je do tej samej klasy, a następnie wykonać.

$('.popClass').change(function(){ 
    var popfrom = $('#popfrom').val(); 
    var poptill = $('#poptill').val(); 

    defineDate(popfrom, poptill); 
}); 
0

Dodaj samą klasę na obu polach i wybierz je za pomocą jQuery '.selector'

$('.classOfTheTextFiled').change(function(){ .... 

:)

Powiązane problemy