我正在使用这个函数来替换标准的 html 复选框,我想从label for
属性而不是<div>
它当前所在的位置调用它。
我不知道如何修改它,以便我可以打电话给孩子<div>
而不是onclick="toggle_colorbox(this);"
. 我将它用于大量复选框,所以我不想通过 id 调用它。
HTML
<label for="color_Black"><div style="background-color: #000000" class="color" onclick="toggle_colorbox(this);"><div class=CheckMark>✓</div>
<input type="checkbox" name="color[]" value="Black" id="color_Black" class="cbx"/></div>Black</label>
JS
function toggle_colorbox(span) {
div = span.getElementsByTagName('div')[0];
cb = span.getElementsByTagName('input')[0];
if (cb.checked == false) {
div.style.visibility = "visible";
span.className = "color ColorboxSelected";
cb.checked = true;
}
else {
div.style.visibility = "hidden";
span.className = "color";
cb.checked = false;
}
}
CSS
.color { border: 1px solid silver; vertical-align:baseline; margin-right:4px; width: 1.65em; height:1.65em; font-size:8px;float:left; }
.color input {height: 100%; width: 100%; font-size:200%;}
.ColorboxSelected {opacity: 0.5; filter: alpha(opacity = 50);}
.ColorboxSelected .CheckMark {visibility: visible; }
.CheckMark {position:relative; top:-2px; vertical-align:middle; text-align:center ; color:white; font-family: Arial Narrow; font-size:1.6em; display:block; visibility:hidden; } /* text-shadow: black 0.1em 0.1em 0.2em;*/
.cbx { visibility:hidden; display:none;}