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 11 Javascript
jquery实现带二级菜单的导航示例
Apr 28 Javascript
js实现的动画导航菜单效果代码
Sep 10 Javascript
jquery中validate与form插件提交的方式小结
Mar 26 Javascript
JS数字千分位格式化实现方法总结
Dec 16 Javascript
Bootstrap table简单使用总结
Feb 15 Javascript
微信小程序多张图片上传功能
Jun 07 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
Oct 17 Javascript
关于Webpack dev server热加载失败的解决方法
Feb 22 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
Apr 24 Javascript
Vue项目中最新用到的一些实用小技巧
Nov 06 Javascript
javascript进阶篇深拷贝实现的四种方式
Jul 07 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 url路由入门实例
2014/04/23 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
php实现等比例压缩图片
2018/07/26 PHP
为超链接加上disabled后的故事
2010/12/10 Javascript
js动态给table添加/删除tr的方法
2013/08/02 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
js获取指定时间的前几秒
2017/04/05 Javascript
Node+Express+MongoDB实现登录注册功能实例
2017/04/23 Javascript
Angular 4.X开发实践中的踩坑小结
2017/07/04 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
详解Python的Django框架中的模版继承
2015/07/16 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
Python3 Random模块代码详解
2017/12/04 Python
Python+OpenCV让电脑帮你玩微信跳一跳
2018/01/04 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
详解Python网络框架Django和Scrapy安装指南
2019/04/01 Python
基于python实现地址和经纬度转换
2020/05/19 Python
基于django2.2连oracle11g解决版本冲突的问题
2020/07/02 Python
LN-CC英国:伦敦时尚生活的缩影
2019/09/01 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
水利学院求职自荐书
2014/02/01 职场文书
母婴店促销方案
2014/03/05 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
三峡人家导游词
2015/01/31 职场文书
保研专家推荐信范文
2015/03/25 职场文书
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL
MySQL中的隐藏列的具体查看
2021/09/04 MySQL
从原生JavaScript到React深入理解
2022/07/23 Javascript