jQuery, если изменяется любое «одно» значение - PullRequest
2 голосов
/ 12 августа 2011

У меня есть фрагмент кода, в котором этот парень написал тридцать функций, когда меняются группы значений формы.

Я хочу объединить их в одну функцию

$('#jobs_held').change(function() {
// do something, with a little variation
});

$('#residence_years').change(function() {
// do something, with a little variation
});

$('#how_long').change(function() {
// do something, with a little variation
});

Есть лив любом случае, я мог бы сделать что-то вроде ...

$('#jobs_held', '#residence_years', '#how_long').change(function(){
// do something, with a little variation
});

Ответы [ 3 ]

6 голосов
/ 12 августа 2011

Объедините их в одну строку, чтобы использовать multiple-selector [документы] .

$('#jobs_held,#residence_years,#how_long').change(function(){
    // do something, with a little variation

    // "this" can be used to refer to the specific element 
    //     that received the event.

    alert( this.id ); // to alert the ID of the element
});

... илинайдите некоторую общую идентичность, например класс, чтобы выбрать их всех.

3 голосов
/ 12 августа 2011

Дайте им всем класс, например, «вопрос», то просто $('.question').change(function() {});

Вы можете получить доступ к идентификатору измененного элемента в функции, если вам нужно изменить его в зависимости от типа.

edit: я предложил метод класса вместо множественного выбора, поскольку его легче поддерживать (вы можете добавлять элементы в HTML, не возвращаясь для редактирования JS) Но да, это правда, мульти-выбор больше соответствует актуальному вопросу. А также, лучшее решение, если изменение HTML является нежизнеспособным.

1 голос
/ 12 августа 2011
$('#jobs_held,#residence_years,#how_long').change(function(){
// do something, with a little variation
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...