- /**
- Description: JQuery Form Plugin (checkbox,radio)
- Date:2015-07-01
- @Author:Robin.Shen
- **/
- (function ($) {
- $.extend($.fn, {
- JCheckbox: function (options) {
- if (!filter(options)) {
- return this;
- }
- var options = $.extend({}, $.fn.JCheckbox.defaults, options);
- $(this).each(function () {
- $(this).find("input[type=checkbox]").wrap('<div class="check_default"></div>');
- if ($(this).find("input[type=checkbox]").attr("disabled")) { //禁用
- if ($(this).find("[type=checkbox]").is(':checked')) {
- $(this).find(".check_default").addClass("check_unable_checked");
- } else {
- $(this).find(".check_default").addClass("check_unable");
- }
- } else { //未禁用
- if ($(this).find("[type=checkbox]").is(':checked')) {
- $(this).find(".check_default").addClass("check_checked");
- }
- $(this).addClass("check_label").mouseover(function () {
- $(this).find(".check_default").addClass("check_hover");
- }).mouseout(function () {
- $(this).find(".check_default").removeClass("check_hover");
- }).click(function () {
- debugger;
- if ($(this).find("[type=checkbox]").is(':checked')) {
- $(this).find(".check_default").removeClass("check_checked");
- $(this).find("[type=checkbox]").removeAttr("checked");
- } else {
- $(this).find(".check_default").addClass("check_checked");
- $(this).find("[type=checkbox]").attr("checked", "checked");
- }
- options.e_choose($(this).find("[type=checkbox]"));
- return false; //阻止事件冒泡
- });
- }
- })
- },
- JRadio: function (roptions) {
- if (!filter(roptions)) {
- return this;
- }
- var options = $.extend({}, $.fn.JRadio.defaults, roptions);
- $(this).each(function () {
- $(this).find("input[type=radio]").wrap('<div class="radio_default"></div>');
- if ($(this).find("input[type=radio]").attr("disabled")) { //禁用
- if ($(this).find("[type=radio]").is(':checked')) {
- $(this).find(".radio_default").addClass("radio_unable_checked");
- } else {
- $(this).find(".radio_default").addClass("radio_unable");
- }
- } else { //未禁用
- if ($(this).find("[type=radio]").is(':checked')) {
- $(this).find(".radio_default").addClass("radio_checked");
- }
- $(this).addClass("radio_label").mouseover(function () {
- $(this).find(".radio_default").addClass("radio_hover");
- }).mouseout(function () {
- $(this).find(".radio_default").removeClass("radio_hover");
- }).bind("click", function () {
- if ($(this).find("[type=radio]").is(':checked')) {
- //$(this).find(".radio_default").removeClass("radio_checked");
- //$(this).find("[type=radio]").removeAttr("checked");
- } else {
- var name = $(this).find("[type=radio]").attr("name");
- $("input[name=" + name + "]").each(function () {
- $(this).parent().removeClass("radio_checked");
- }).removeAttr("checked");
- $(this).find(".radio_default").addClass("radio_checked");
- $(this).find("[type=radio]").attr("checked", "checked");
- options.e_change($(this).find("[type=radio]")); //执行客户端事件
- }
- });
- }
- })
- }
- })
- $.fn.JCheckbox.defaults = {
- e_choose: function ($obj) { }
- }
- $.fn.JRadio.defaults = {
- e_change: function ($obj) { }
- }
- function filter(options) {
- return !options || (options && typeof options === "object") ? true : false;
- }
- })(jQuery);
- //该片段来自于http://www.codesnippet.cn/detail/0607201513023.html
来源: http://www.codesnippet.cn/detail/0607201513023.html