jQuery自定义添加"$"与解决"$"冲突的方法


Posted in Javascript onJanuary 19, 2015

本文实例讲述了jQuery自定义添加"$"与解决"$"冲突的方法。分享给大家供大家参考。具体分析如下:

1.自定义添加$

虽然jQuery很强大,但无论如何,jQuery都不可能满足所有用户的需求,而且有一些需求十分小众,也不适合放到整个jQuery框架中,正是因为这一点,jQuery提供了用户自定义添加“$”的方法。

代码如下:

$.fn.disable = function() {

 return this.each(function() {

     if (typeof this.disabled != "undefined") this.disable = true;

 });

}

以上代码首先设置"$.fn.disable",表明“$”添加一个方法disable(),其中 “$.fn”是扩展jQuery所必须的。

然后利用匿名函数定义这个方法,即用each()将调运这个方法的每个元素disabled属性均设置为true.(如果该属性存在)

例:扩展jquery的功能

<script type="text/javascript">

    $.fn.disable = function() {

 //扩展jQuery,表单元素统一disable

 return this.each(function() {

     if (typeof this.disabled != "undefined") this.disabled = true;

 });

    }

    $.fn.enable = function() {

 //扩展jQuery,表单元素统一enable

 return this.each(function() {

     if (typeof this.disabled != "undefined") this.disabled = false;

 });

    }
    function SwapInput(oName, oButton) {

 if (oButton.value == "Disable") {

     //如果按钮的值为Disable,则调用disable()方法

     $("input[name=" + oName + "]").disable();

     oButton.value = "Enable";

 } else {

     //如果按钮的值为Eable,则调用enable()方法

     $("input[name=" + oName + "]").enable();

     oButton.value = "Disable"; //然后设置按钮的值为Disable

 }

    }

</script>

<form method="post" name="myForm1" action="addInfo.aspx">

    <p>

 <label for="name">请输入您的姓名:</label>

 <br>

 <input type="text" name="name" id="name" class="txt">

    </p>

    <p>

 <label for="passwd">请输入您的密码:</label>

 <br>

 <input type="password" name="passwd" id="passwd" class="txt">

    </p>

    <p>

 <label for="color">请选择你最喜欢的颜色:</label>

 <br>

 <select name="color" id="color">

     <option value="red">红</option>

     <option value="green">绿</option>

     <option value="blue">蓝</option>

     <option value="yellow">黄</option>

     <option value="cyan">青</option>

     <option value="purple">紫</option>

 </select>

    </p>

    <p>请选择你的性别:

 <br>

 <input type="radio" name="sex" id="male" value="male">

 <label for="male">男</label>

 <br>

 <input type="radio" name="sex" id="female" value="female">

 <label for="female">女</label>

    </p>

    <p>你喜欢做些什么:

 <input type="button" name="btnSwap" id="btnSwap" value="Disable" class="btn" onclick="SwapInput('hobby',this)">

 <br>

 <input type="checkbox" name="hobby" id="book" value="book">

 <label for="book">看书</label>

 <input type="checkbox" name="hobby" id="net" value="net">

 <label for="net">上网</label>

 <input type="checkbox" name="hobby" id="sleep" value="sleep">

 <label for="sleep">睡觉</label>

    </p>

    <p>

 <label for="comments">我要留言:</label>

 <br>

 <textarea name="comments" id="comments" cols="30" rows="4"></textarea>

    </p>

    <p>

 <input type="submit" name="btnSubmit" id="btnSubmit" value="Submit" class="btn">

 <input type="reset" name="btnReset" id="btnReset" value="Reset" class="btn">

    </p>

</form>

方法SwapInput(nName,oButton)根据按钮的值进行判断,如果是不可用"disable",则调运disable()将元素设置为不可用,同时修改按钮的值为"enable",反之则调运enable()方法。

2.解决"$"的冲突

与前面文章的情况类似,尽管JQuery非常强大,但是有时开发者同时使用多个框架,这时需要小心,因为其他框架也可能使用了"$",从而发生冲突,jQ同样提供了noConflict()方法来解决"$"冲突的问题。

jQuery.noconflict();

以上代码便可使"$"按照其他javascript框架的方式运算,这是jQuery中便不能再使用"$",而必须使用“jQuery”,例如$("h2 a")必须写成jQuery("h2 a")

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
Javascript客户端将指定区域导出到Word、Excel的代码
Oct 22 Javascript
extjs中grid中嵌入动态combobox的应用
Jan 01 Javascript
JavaScript中奇葩的假值示例应用
Mar 11 Javascript
jQuery数据缓存用法分析
Feb 20 Javascript
javascript创建函数的20种方式汇总
Jun 23 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
May 05 Javascript
15位和18位身份证JS校验的简单实例
Jul 18 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
Oct 14 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
Dec 08 Javascript
Vue.js递归组件构建树形菜单
Dec 24 Javascript
详解webpack 最简打包结果分析
Feb 20 Javascript
详解Vue template 如何支持多个根结点
Feb 10 Javascript
jQuery创建DOM元素实例解析
Jan 19 #Javascript
jQuery使用之处理页面元素用法实例
Jan 19 #Javascript
jQuery学习笔记之jQuery中的$
Jan 19 #Javascript
jQuery使用之设置元素样式用法实例
Jan 19 #Javascript
jQuery学习笔记之基础中的基础
Jan 19 #Javascript
jQuery 选择器详解
Jan 19 #Javascript
jQuery使用之标记元素属性用法实例
Jan 19 #Javascript
You might like
PHP读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
初识php MVC
2014/09/10 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
一个cssQuery对象 javascript脚本实现代码
2009/07/21 Javascript
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
2015/04/12 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
js 获取json数组里面数组的长度实例
2017/10/31 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
[05:07]DOTA2英雄梦之声_第14期_暗影恶魔
2014/06/20 DOTA
安装dbus-python的简要教程
2015/05/05 Python
python编程实现归并排序
2017/04/14 Python
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
python 搭建简单的http server,可直接post文件的实例
2019/01/03 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
HTML5中如何显示视频呢 HTML5视频播放demo
2013/06/08 HTML / CSS
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
德国隐形眼镜店:LuckyLens
2018/07/29 全球购物
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
销售个人求职信范文
2014/04/28 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
大学生个人学习总结
2015/02/15 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
2015重阳节座谈会主持词
2015/07/30 职场文书
毕业设计工作总结
2015/08/14 职场文书
redis cluster支持pipeline的实现思路
2021/06/23 Redis