Невозможно контролировать статус флажка - jquery - PullRequest
0 голосов
/ 29 ноября 2010

Я не могу получить это событие onClick для управления проверенным состоянием флажка ... какие-либо мысли?

        init: function () {
            $('.billing input[type="checkbox"]').bind('click', function (e) {
                e.preventDefault();
                iKeyless.page.toggleShippingForm($(e.currentTarget));
            });
        },
        toggleShippingForm: function (el) {
            if (el.attr('checked')) {
                $('.shipping').parents('.yui-u').addClass('hide');
                el.attr('checked', false);
            } else {
                $('.shipping').parents('.yui-u').removeClass('hide');
                el.attr('checked', true);
            }
        }

Оно загружается с флажком и остается отмеченным независимо от того, что я делаю ...

1 Ответ

0 голосов
/ 29 ноября 2010

Должно быть просто передано this для ссылки на элемент <input> ... хотя вам не нужен объект jQuery, вот рабочая версия:

init: function () {
    $('.billing input[type="checkbox"]').bind('click', function (e) {
        e.preventDefault();
        iKeyless.page.toggleShippingForm($(this));
    });
},
toggleShippingForm: function (el) {
    if (el.attr('checked')) {
        $('.shipping').parents('.yui-u').addClass('hide');
        el.attr('checked', false);
    } else {
        $('.shipping').parents('.yui-u').removeClass('hide');
        el.attr('checked', true);
    }
}

Но так как .checked - это свойство DOM, вы можете просто сделать это (без преобразования в объект jQuery):

init: function () {
    $('.billing input[type="checkbox"]').change(function (e) {
        e.preventDefault();
        iKeyless.page.toggleShippingForm(this);
    });
},
toggleShippingForm: function (el) {
    $('.shipping').parents('.yui-u').toggleClass('hide', el.checked);
}

Элемент уже меняет свой статус .checked ... просто используйтеэто в событии change.При необходимости измените .toggleClass('hide', el.checked) на .toggleClass('hide', !el.checked), в зависимости от того, каким образом он должен быть виден.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...