Флажок Bind to boolean variable - PullRequest
       21

Флажок Bind to boolean variable

1 голос
/ 07 марта 2011

У меня довольно много флажков на моей странице, и каждый флажок соответствует определенной переменной в моем коде JavaScript. В настоящее время у меня есть такой код для каждого флажка:

$("#checkbox_var1").click(function() {
    Settings.var1 = $(this).checked();
});

Мне было интересно, можно ли сохранить ссылку на переменную в элементе (возможно, используя data()), чтобы этого было достаточно, чтобы привязать флажок к логической переменной. Мой текущий код становится довольно длинным, так как у меня есть достаточное количество флажков.

Так можно ли привязать флажок к логической переменной напрямую? Или существует общий способ привязки значения элемента к переменной?

1 Ответ

2 голосов
/ 07 марта 2011

Вы можете использовать один и тот же обработчик событий для нескольких флажков, используя идентификатор элемента для соединения двух объектов объекта настроек, например:

function checkListener (evt) {
    var id = this.id.substr(9);
    Settings[id] = $("#" + this.id + ":checked").length > 0;
}

Предполагая, что вы соблюдаете те же правила, что и названия всех соответствующих флажков в вашем приложении, вы должны соответствующим образом настроить функцию подстроки. Затем, чтобы применить к нескольким флажкам одновременно, вы можете сделать что-то вроде этого:

$(":checkbox[id*='checkbox']").click(checkListener);

Что означает: «Для всех входных элементов типа флажок, имеющих идентификатор, содержащий« флажок »». Таким образом, вы можете обрабатывать несколько флажков с помощью нескольких строк кода.

...