//# ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // //# RADIO (function($) { $.fn.radioFx = function(config) { //: var defaults = {}; //: var options = $.extend({}, defaults, config); //: return this.each(function() { var $node = $(this); var $input = $node.find('input'); var $inputName = $input.attr('name'); var $inputChecked = $input.prop('checked'); var $inputDisabled = $input.prop('disabled'); $node.attr('data-name', $inputName); $node.find('span').addClass('Text'); $node.prepend(''); if ( $inputChecked ) { $node.addClass('Checked'); } $node .on('click.radioEvent', function(e) { var target = e.target; var tagname = target.tagName.toLowerCase(); if ( tagname != 'a' ) { stopEvent(e); if ( !$inputDisabled ) { toggleCheckedRadio( $(this) ); } } }); $node.find('a') .on('click.radioEvent', function(e) { stopEvent(e); var aUrl = $(this).attr('href'); var aTarget = $(this).attr('target'); window.open(aUrl, aTarget); return false; }); }); //: function toggleCheckedRadio(_obj) { var dataName = _obj.attr('data-name'); if ( !_obj.find('input').prop('checked') ) { _obj.parents('form').find('.Radio.Checked[data-name="' + dataName + '"]').removeClass('Checked'); //: 1 _obj.parents('form').find('.Radio.Checked[data-name="' + dataName + '"]').find('input').prop('checked', false); //: 2 _obj.addClass('Checked'); //: 1 _obj.find('input').prop('checked', true); //: 2 } _obj.find('input').trigger('change'); } }; })(jQuery); //# INIT RADIO $(document).ready(function() { var $formRadio = $('form .Radio'); if ( $formRadio.length > 0 ) { $formRadio.radioFx(); } });