jQuery的扩展与noConflict小结

<1>关于jQuery插件扩展

jQuery的写法让 添加新功能很方便。新的功能的模块,也就是插件(pulg-in)。jQuery插件是普通的Javascript代码文件,在网页使用的时候,用<script>元素引入就好,就和其他的JavaScript类库一样。(要注意引入的顺序,书上提到的是,必须在jQuery之后引入插件,在插件被调用的前面,也就提一下,大家都知道的)。

  有两种扩展方法

(1)使用$直接创建

在自定义插件的js文件myjQuery.js中:

$.myjq=function () {
    alert("hello myjquery");
}

然后再另外一个js文件中以jq的形式调用:

$(document).ready(function () {
        $.myjq();
})
  代码myjq是自己命名的插件,function里面是函数内容;
(2)使用jQuery.fn来创建

开发jQuery的插件,必须要知道jQuery.fn是所有jQuery对象的原型对象。就相当于Java里的老祖宗类Object的对象,怎么说来着,叫多态思想,就是可以父类的变量可以指向子类对象。

在自定义插件的js文件myjQuery.js中:

$.fn.myjq=function () {
    $(this).text("hello");
}
然后成为jQuery的一种方法:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ExtendsIndex</title>
    <script src="js/jquery-3.2.1.js"></script>
    <script src="js/myjQuery.js"></script>
    <script src="js/ExtendsIndex.js"></script>
</head>
<body>
    <div></div>
    <script>
        $("div").myjq();
    </script>
</body>
</html>

<2>关于noconfict

Query是有良好的封装,全局只有一个jquery对象,不会污染顶级域名。

 jQuery默认使用"$"操作符,prototype等其他框架也是是使用"$",于是,如果jQuery在其他库之后引入,那么jQuery将获得"$"使用权。这样的情况也很容易理解,毕竟JS是从上到下流式执行的。

  同样的道理,如果在其他使用"$"的库之前引入jQuery,那么jQuery将不会占用"$"。

在jQuery中默认的是使用 $ 符号作为 jQuery 的简写(把jquery和$绑定),好比本来jquery("p")就可以写成$("p"); 如果添加了$.noConflict();之后就相当于解除了$与jquery的

绑定,解除之后你可以自己定义jquery的简写。

例如下列代码:

$(document).ready(function () {
        // $.myjq();
        $("#btn").on("click",function () {
            $("div").text("new Hello");
        })
})
$有可能会被其他的框架冲突,此时应在JavaScript的顶部增加一句

$.noConflict();
接下来直接用jQuery替代$,解决冲突问题.

如果嫌名字长,还有以下操作

var m=jQuery.noConflict();
或者

var m=jQuery;

前者更佳;

初学jq,如果理解有误,请多指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值