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 08 Javascript
用js解决数字不能换行问题
Aug 10 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
Mar 27 Javascript
解决jquery无法找到其他父级子集问题的方法
May 10 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
Dec 27 Javascript
js 事件的传播机制(实例讲解)
Jul 20 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
Feb 03 Javascript
使用vue-aplayer插件时出现的问题的解决
Mar 02 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
Aug 12 Javascript
详解微信小程序开发用户授权登陆
Apr 24 Javascript
JS数组Object.keys()方法的使用示例
Jun 05 Javascript
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
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
40年前的这部特摄片恐龙特级克塞号80后的共同回忆
2020/03/08 日漫
基于mysql的论坛(5)
2006/10/09 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
2016/03/17 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
php使用socket调用http和smtp协议实例小结
2019/07/26 PHP
js 返回时间戳所对应的具体时间
2010/07/20 Javascript
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
Vue.js 中的实用工具方法【推荐】
2019/07/04 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
2020/10/30 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
Python3中的2to3转换工具使用示例
2015/06/12 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
Python for循环与getitem的关系详解
2020/01/02 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
中文专业毕业生自荐信
2013/10/28 职场文书
高中班主任评语大全
2014/04/25 职场文书
学习演讲稿范文
2014/05/10 职场文书
团队拓展活动总结
2014/08/27 职场文书
2014年财务工作自我评价
2014/09/23 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python