// 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) /* новый чекбокс выглядит так новый чекбокс получает теже 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(""+ ""); else el.after(""+ ""); /* если 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; }