网上搜索了信息在编写JQUERY扩展方法有两种,一种是使用jquery.fn.extend,一种是jquery.extend. jquery.fn表示jquery.prototype,,给jquery对象添加方法。刚好用到扩展方法,并且使用jquery.fn,这里就写下jquery.fn的用法,这些网上很多,蛮写蛮写 比如当点击 button时弹出一个textbox的值加一个参数值
jquery.fn.extend({ alertMessage:function(message){ var txtboxValue = $(this).val();//使用$(this)表示对哪个对象添加了扩展方法,这里是指$('#textbox' ) alert(txtboxValue + message); } }); $(function(){ $("input[name='btn' ]").click(function(){ $('#textbox' ).alertMessage("是字符串"); }) })
html:
于是翻出了前年的Jquery中文文档。 大致浏览了下Jquery的方法。发现Jquery如此之强大,怎么以前就没有发现呢?于是就亲手写了基于Jquery的扩展函数,代码如下:
jQuery.fn.__toggleCheck = function (idPrefix) { var c = false; $(this).click(function () { if (c) c = false; else c = true; $("input[type=checkbox][id^=" + idPrefix + "]").each( function () { this.checked = c; } ); }); }; jQuery.fn.__setRepeaterStyle = function (itemTag, evenStyle, hoverStyle) { $("#" + this.attr("id") + " " + itemTag + ":odd").addClass(evenStyle); var cssOriginal = ""; $("#" + this.attr("id") + " " + itemTag + "").mouseover(function () { cssOriginal = $(this).attr("class"); $(this).addClass(hoverStyle); }); $("#" + this.attr("id") + " " + itemTag + "").mouseout(function () { $(this).removeClass(); if (cssOriginal.length > 0) { $(this).addClass(cssOriginal); } }); };
以上函数调用如下: