vendor/assets/javascripts/ui/gumby.radiobtn.js in gumby-0.0.4 vs vendor/assets/javascripts/ui/gumby.radiobtn.js in gumby-0.0.5
- old
+ new
@@ -10,44 +10,51 @@
this.$el = $el;
var scope = this;
// listen for click event and custom gumby check event
this.$el.on(Gumby.click, function(e) {
- // prevent propagation
- e.stopImmediatePropagation();
-
- // prevent radio button checking, we'll do that manually
- e.preventDefault();
-
- // check radio button
- scope.update();
+ scope.click(e);
}).on('gumby.check', function() {
scope.update();
});
// update any .checked checkboxes on load
if(scope.$el.hasClass('checked')) {
scope.update();
}
}
+ // handle radio button click event
+ RadioBtn.prototype.click = function(e) {
+
+ // element responsible for event trigger
+ var $target = $(e.target);
+
+ // prevent propagation
+ e.stopPropagation();
+
+ // prevent radio button checking, we'll do that manually
+ e.preventDefault();
+
+ // check radio button
+ this.update();
+ };
+
// check radio button, uncheck all others in name group
RadioBtn.prototype.update = function() {
var // this specific radio button
$input = this.$el.find('input[type=radio]'),
- $span = this.$el.find('span'),
// the group of radio buttons
group = 'input[name="'+$input.attr('name')+'"]';
// uncheck radio buttons in same group - uncheck input, remove checked class, remove <i>
$('.radio').has(group).removeClass('checked')
- .find('input').prop('checked', false).end()
- .find('i').remove();
+ .find('input').attr('checked', false).end()
+ .find('i').remove();
// check this radio button - check input, add checked class, append <i>
- $input.prop('checked', true);
- $span.append('<i class="icon-dot" />');
- this.$el.addClass('checked').trigger('gumby.onChange');
+ $input.attr('checked', true);
+ this.$el.append('<i class="icon-dot" />').addClass('checked').trigger('gumby.onChange');
};
// add initialisation
Gumby.addInitalisation('radiobtns', function() {
$('.radio').each(function() {