Начальный значок набора кнопок jQuery-UI - PullRequest
0 голосов
/ 30 января 2012

У меня есть следующий скрипт jQuery для преобразования флажка в кнопку jQuery-UI и настройки отображаемых значков.Он также меняет значок при нажатии кнопки.Все отлично работает.Однако я не могу найти правильный синтаксис, чтобы установить начальный значок, основанный на начальном установленном состоянии флажка.

function setCheckBoxImages() {
        $(".check-box-image").button({
            icons: { primary: 'ui-icon-check' },
            text: false
        }).change(function () {
            $(this).button("option", {
                icons: { primary: this.checked ? 'ui-icon-check' : '' }
            });
        });
    };

<input class="check-box-image" type="checkbox" checked="@item.IsBusinessHours" id="checkbox1" disabled/><label for="checkbox1"></label>

РЕДАКТИРОВАТЬ: Вот моя последняя рабочая разметка и сценарий согласно случайному ответу ниже:

@Html.CheckBox(@cbMobileId, @item.IsMobile, new { @class = "check-box-image", disabled = "disabled" })<label for="@cbMobileId">    

function setCheckBoxImages() {
        var checkboxes= $(".check-box-image");

        checkboxes.button({
            text: false
        }).change(function () {
            $(this).button("option", {
                icons: { primary: this.checked ? 'ui-icon-check' : 'ui-icon-minus' }
            });
        });

        checkboxes.each(function () {
            $(this).change();
        });
    };

Ответы [ 3 ]

0 голосов
/ 30 января 2012

возможно ваша функция не была вызвана. попробуйте это на вашем javascript

$(document).ready(function(){
    $(".check-box-image").button({
        icons: { primary: 'ui-icon-check' },
        text: false
    }).change(function () {
        $(this).button("option", {
            icons: { primary: this.checked ? 'ui-icon-check' : '' }
        });
    });
});
0 голосов
/ 30 января 2012

Вы можете перебрать все кнопки jQuery и вызвать функцию изменения для каждой из них.

0 голосов
/ 30 января 2012

Когда вы звоните setCheckBoxImages()? Не видя остальной код, это сложно, но попробуйте вызвать его на document.ready.

Вы должны установить начальные значки в зависимости от состояния флажка:

function setCheckBoxImages() {
        var check = $(".check-box-image");
        check.button({
            icons: { primary: check.is(':checked') ? 'ui-icon-check' : '' },
            text: false
        }).change(function () {
            $(this).button("option", {
                icons: { primary: this.checked ? 'ui-icon-check' : '' }
            });
        });
    };
...