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写的一个自定义弹出式对话框代码
Jan 17 Javascript
JavaScript中exec函数用法实例分析
Jun 08 Javascript
最简单的JavaScript图片轮播代码(两种方法)
Dec 18 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
Jan 05 Javascript
vuejs父子组件通信的问题
Jan 11 Javascript
ES6中Array.copyWithin()函数的用法实例详解
Sep 16 Javascript
Vue项目中设置背景图片方法
Feb 21 Javascript
详解webpack4升级指南以及从webpack3.x迁移
Jun 12 Javascript
Vue插槽原理与用法详解
Mar 05 Javascript
vue如何限制只能输入正负数及小数
Jul 04 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
Sep 02 Javascript
Javascript组合继承方法代码实例解析
Apr 02 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查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
推荐十款免费 WordPress 插件
2015/03/24 PHP
ThinkPHP实现递归无级分类――代码少
2015/07/29 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
javascript无刷新评论实现方法
2015/05/13 Javascript
webpack独立打包和缓存处理详解
2017/04/03 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
微信小程序在ios下Echarts图表不能滑动的问题解决
2019/07/10 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
JS array数组检测方式解析
2020/05/19 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
python实现探测socket和web服务示例
2014/03/28 Python
Python中的引用和拷贝浅析
2014/11/22 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
python实现电子书翻页小程序
2019/07/23 Python
python动态文本进度条的实例代码
2020/01/22 Python
Win 10下Anaconda虚拟环境的教程
2020/05/18 Python
大学生年度自我鉴定
2013/10/31 职场文书
实习单位接收函
2014/01/11 职场文书
幼儿园小班教学反思
2014/02/02 职场文书
晚归检讨书
2014/02/19 职场文书
Go Gin实现文件上传下载的示例代码
2021/04/02 Golang
golang特有程序结构入门教程
2021/06/02 Python
美元符号 $
2022/02/17 杂记
CSS的calc函数用法小结
2022/06/25 HTML / CSS