编辑:这是所有代码的jsfiddle。 https://jsfiddle.net/ypbd3fgf/2/
我正在使用此简单代码将一个类添加到父元素,以使所选单选按钮上的文本变为粗体。但是,它仅适用于页面加载。如果选择其他单选按钮,则新选择的按钮不会变粗体。我认为这是因为代码仅在页面加载时运行。选择新的单选按钮或结帐后,如何更新它?谢谢!
<script type="text/javascript">
$(function() {
$(".ez-selected").closest('.row').addClass("bold");
});
</script>
是HTML。选择单选按钮时,.ez选择的类将添加到.ez-radio div。然后在选择其他单选按钮时将其删除。添加.ez选择的类时,需要将.bold类添加到.row div中。删除.ez选择的类时,需要从.row div中删除.bold类。
<div class="row (bold)">
<input name="TXT870" type="hidden" value="Option 1">
<div class="col-xs-2">
<div class="ez-radio (ez-selected)">
<input class="clearBorder ez-hide" name="CAG3" onclick=
"javascript:document.additem.CAG3QF1.value='1'; CheckPreValue(this, 2, 0);"
type="radio" value="870_625_0_625">
</div><input name="CAG3QF1" type="hidden" value="0">
</div>
<div class="col-xs-7">
<span>Option 1</span> <input class="transparentField" name=
"CAG3TX1" readonly size="14" type="text" value=" - Add $5.00">
</div>
</div>
编辑:我在下面添加了JS代码,该代码添加和删除了.ez-selected类。我要制作的新JS将只是通过下面的此其他JS代码添加和删除.ez选择的类时,添加和删除粗体类。
(function($) {
$.fn.ezMark = function(options) {
options = options || {};
var defaultOpt = {
checkboxCls: options.checkboxCls || 'ez-checkbox',
radioCls: options.radioCls || 'ez-radio',
checkedCls: options.checkedCls || 'ez-checked',
selectedCls: options.selectedCls || 'ez-selected',
hideCls: 'ez-hide'
};
return this.each(function() {
var $this = $(this);
var wrapTag = $this.attr('type') == 'checkbox' ?
'<div class="' + defaultOpt.checkboxCls + '">' :
'<div class="' + defaultOpt.radioCls + '">';
if ($this.attr('type') == 'checkbox') {
$this.addClass(defaultOpt.hideCls).wrap(wrapTag)
.change(function() {
if ($(this).is(':checked')) {
$(this).parent().addClass(
defaultOpt.checkedCls);
} else {
$(this).parent().removeClass(
defaultOpt.checkedCls);
}
});
if ($this.is(':checked')) {
$this.parent().addClass(defaultOpt.checkedCls);
}
} else if ($this.attr('type') == 'radio') {
$this.addClass(defaultOpt.hideCls).wrap(wrapTag)
.change(function() {
$('input[name="' + $(this).attr(
'name') + '"]').each(
function() {
if ($(this).is(
':checked')) {
$(this).parent().addClass(
defaultOpt.selectedCls
);
} else {
$(this).parent().removeClass(
defaultOpt.selectedCls
);
}
});
});
if ($this.is(':checked')) {
$this.parent().addClass(defaultOpt.selectedCls);
}
}
});
}
})(jQuery);
最佳答案
编辑:
新代码将切换为function(){...}
格式,并在输入元素上查找click事件,然后检查其是否为单选按钮,并且父级为.row
,然后将bold
和ez-selected
类添加到单选按钮中按钮并将其从其他收音机中删除。
$("input").click(function() {
if($(this).attr('type') == 'radio' && $(this).parents('.row').length > 0){
$("input").closest('.row').removeClass('bold ez-selected');
$(this).addClass('bold ez-selected');
}
})