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 相关文章推荐
浅析js封装和作用域
Jul 09 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
Aug 18 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
Jun 15 Javascript
JQuery对ASP.NET MVC数据进行更新删除
Jul 13 Javascript
js实现文字超出部分用省略号代替实例代码
Sep 01 Javascript
AngularJS中指令的四种基本形式实例分析
Nov 22 Javascript
canvas实现粒子时钟效果
Feb 06 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
Jan 25 jQuery
Vue中使用sass实现换肤功能
Sep 07 Javascript
详解jQuery-each()方法
Mar 13 jQuery
js设计模式之代理模式及订阅发布模式实例详解
Aug 15 Javascript
JSX在render函数中的应用详解
Sep 04 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调用dll的实例操作动画与代码分享
2012/08/14 PHP
php 强制下载文件实现代码
2013/10/28 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
完美解决thinkphp验证码出错无法显示的方法
2014/12/09 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
Javascript中arguments和arguments.callee的区别浅析
2015/04/24 Javascript
使用Chart.js图表库制作漂亮的响应式表单
2015/10/28 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
Angularjs Promise实例详解
2018/03/15 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
python使用分治法实现求解最大值的方法
2015/05/12 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
python ubplot使用方法解析
2020/01/10 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
考博自荐信
2013/10/25 职场文书
师范生自荐信
2013/10/27 职场文书
便利店投资的创业计划书
2014/01/12 职场文书
《理想的风筝》教学反思
2014/04/11 职场文书
本科生求职信
2014/06/17 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
政府四风问题整改措施
2014/10/04 职场文书
售票员岗位职责
2015/02/15 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书