查看文件: checkbox.js
大小: 2.98 KB
类型: application/javascript
// JavaScript Document jQuery(document).ready(function(){ jQuery(".niceCheck").each( /* при загрузке страницы меняем обычные на стильные checkbox */ function() { changeCheckStart(jQuery(this)); }); }); function changeCheck(el) /* функция смены вида и значения чекбокса при клике на контейнер чекбокса (тот, котрый отвечает за новый вид) el - span контейнер для обычного чекбокса input - чекбокс */ { var el = el, input = el.find("input").eq(0); if(el.attr("class").indexOf("niceCheckDisabled")==-1) { if(!input.attr("checked")) { el.addClass("niceChecked"); input.attr("checked", true); } else { el.removeClass("niceChecked"); input.attr("checked", false).focus(); } } return true; } function changeVisualCheck(input) { /* меняем вид чекбокса при смене значения */ var wrapInput = input.parent(); if(!input.attr("checked")) { wrapInput.removeClass("niceChecked"); } else { wrapInput.addClass("niceChecked"); } } function changeCheckStart(el) /* новый чекбокс выглядит так <span class="niceCheck"><input type="checkbox" name="[name check]" id="[id check]" [checked="checked"] /></span> новый чекбокс получает теже name, id и другие атрибуты что и были у обычного */ { try { var el = el, checkName = el.attr("name"), checkId = el.attr("id"), checkChecked = el.attr("checked"), checkDisabled = el.attr("disabled"), checkValue = el.attr("value"); checkTab = el.attr("tabindex"); if(checkChecked) el.after("<span class='niceCheck niceChecked'>"+ "<input type='checkbox'"+ "name='"+checkName+"'"+ "id='"+checkId+"'"+ "checked='"+checkChecked+"'"+ "value='"+checkValue+"'"+ "tabindex='"+checkTab+"' /></span>"); else el.after("<span class='niceCheck'>"+ "<input type='checkbox'"+ "name='"+checkName+"'"+ "id='"+checkId+"'"+ "value='"+checkValue+"'"+ "tabindex='"+checkTab+"' /></span>"); /* если checkbox disabled - добавляем соотвсмтвующи класс для нужного вида и добавляем атрибут disabled для вложенного chekcbox */ if(checkDisabled) { el.next().addClass("niceCheckDisabled"); el.next().find("input").eq(0).attr("disabled","disabled"); } /* цепляем обработчики стилизированным checkbox */ el.next().bind("mousedown", function(e) { changeCheck(jQuery(this)) }); el.next().find("input").eq(0).bind("change", function(e) { changeVisualCheck(jQuery(this)) }); if(jQuery.browser.msie) { el.next().find("input").eq(0).bind("click", function(e) { changeVisualCheck(jQuery(this)) }); } el.remove(); } catch(e) { // если ошибка, ничего не делаем } return true; }
保存
取消
返回文件列表