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 相关文章推荐
jQuery Div中加载其他页面的实现代码
Feb 27 Javascript
jquery 常用操作方法
Jan 28 Javascript
jQuery Autocomplete自动完成插件
Jul 17 Javascript
Jquery getJSON方法详细分析
Dec 26 Javascript
Egret引擎开发指南之创建项目
Sep 03 Javascript
Javscript调用iframe框架页面中函数的方法
Nov 01 Javascript
javascript获取文档坐标和视口坐标
May 26 Javascript
socket.io学习教程之基础介绍(一)
Apr 29 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
Jun 12 Javascript
webpack 3.X学习之多页面打包的方法
Sep 04 Javascript
vue里如何主动销毁keep-alive缓存的组件
Mar 21 Javascript
js实现可爱的气泡特效
Sep 05 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
MySql中正则表达式的使用方法描述
2008/07/30 PHP
php 中文处理函数集合
2008/08/27 PHP
php feof用来识别文件末尾字符的方法
2010/08/01 PHP
PHP利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
PHP扩展Memcache分布式部署方案
2015/12/06 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
js 颜色选择插件
2017/01/23 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
python 网络爬虫初级实现代码
2016/02/27 Python
Python如何实现文本转语音
2016/08/08 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
2018/07/12 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
详解python polyscope库的安装和例程
2020/11/13 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
极简鞋类,赤脚的感觉:Lems Shoes
2019/08/06 全球购物
社会实践活动总结范文
2014/07/03 职场文书
工程索赔意向书
2014/08/30 职场文书
2014民事授权委托书范本
2014/09/29 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
单位租房协议书样本
2014/10/30 职场文书
颐和园英文导游词
2015/01/30 职场文书
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server