我有一个 JS 代码,允许我替换 HTML 代码中的复选框。
我的问题是:我所有的复选框都被替换了,但我的其他 JS 代码不起作用。如果我点击标签,没关系,但不是在替换的复选框上。
我的 HTML:
<input type="checkbox" class="myCB" id="test" class="property-custom-field" />
<label for="test">Test</label>
<input type="hidden" name="moods" id="moods">
我的 JS:
<script>
jQuery('input[type=checkbox]').each(function() { jQuery(this).replaceCheckbox(); });
$("input.myCB").click(function() {
alert('Test');
var clickedId = $(this).attr('id');
var locationBtn = $('#moods');
var locationBtnValue = $('#moods').val();
if(locationBtnValue.toString().indexOf(clickedId) == -1) { locationBtn.val(locationBtnValue + clickedId + ","); }
else { locationBtn.val(locationBtnValue.replace(clickedId + ',','')); }
});
</script>
我替换复选框的功能:
<script>
replaceCheckbox: function() {
//// vars
var selCont = this;
//// WRAPS IT AROUND SELECT
selCont.wrap('<div class="checkbox-replace"></div>');
var mainCont = selCont.parent();
//// IF IT'S CHECKED
if(selCont.is(':checked')) { mainCont.addClass('checkbox-replace-checked'); }
//// MAKES IT OVERLAY THE CONTAINER
selCont.css({ display: 'none' });
//// WHEN WE CLICK THE MAIN CONTAINER
mainCont.click(function() {
//// IF IT'S CHECKED
if(jQuery(this).attr('class').indexOf('checked') != -1) {
//// UNCHECKS IT
jQuery(this).removeClass('checkbox-replace-checked');
selCont.removeAttr('checked');
} else {
//// UNCHECKS IT
jQuery(this).addClass('checkbox-replace-checked');
selCont.attr('checked', 'checked');
}
});
}
</script>
希望你能帮助我。
谢谢。