It should just be this
passed in to refer to the <input>
element...though you don't need a jQuery object, here's a working version:
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);
}
}
But since .checked
is a DOM property, you can just do this (without converting to a jQuery object):
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);
}
The element's changing it's .checked
status already...just use it in the change
event. If needed, change the .toggleClass('hide', el.checked)
to .toggleClass('hide', !el.checked)
, depending on which way it should be visible.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…