Должно быть просто передано 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)
, в зависимости от того, каким образом он должен быть виден.