jQuery多库共存、插件、链式编程、隐式迭代

一、多库共存

jQuery 使用 $ 作为顶级对象的标识符,随着 JQuery 的流行,其他 js 库可能也会使用 $ 作为标识符,这样一起使用时就会引起冲突。为了同时使用这些 js 库,使他们的标识符不存在冲突,实现多库共存。jQuery 提供了两种方案。

  1. 方案一:把里面的 $ 符号统一使用 jQuery 代替。比如 jQuery(“div”)。
  2. 方案二:将 jQuery 中的顶级对象的命名权交给开发者,开发者可以自己对其进行命名。
  3. 方案二语法:jQuery.noConflict(); // 例如:var xx = jQuery.noConflict();

二、插件

jQuery 功能有限,想要更复杂的特效效果和快速开发可以借助 jQuery 插件。注意:这些插件也是依赖于 jQuery 来完成的(内部使用 jQuery 代码语法实现),所以必须要先引入 jQuery 文件。因此也称为 jQuery 插件。

  • jQuery 插件下载常用网站
    1. jQuery 插件库:http://www.jq22.com/
    2. jQuery之家:http://www.htmleaf.com/
  • jQuery 插件的使用步骤(略过)
  • 了解到的几个 jQuery 插件
    1. 瀑布流网页效果制作插件。
    2. 图片懒加载插件(EasyLazyload.js)。 注意,此时的js引入文件和js调用必须写到 DOM元素(图片)最后面。
    3. 全屏滚动插件(fullpage.js)。下载地址 http://www.dowebok.com/demo/2014/77/

bootstrap 框架也是依赖于 jQuery 开发的,因此在使用里面的 js 插件或组件时,也必须先引入 jQuery 文件

三、链式编程

链式编程的原理:jQuery 中的很多方法除了能够实现特定功能外还返回当前的 jQuery 对象或者其他 jQuery 对象,所以我们在使用这些方法后还可以接着调用其他方法。只要链没有断(返回的不是当前 jQuery 对象或者下一步我们要操作的 jQuery 对象)我们就可以根据需要继续调用相应的方法。

// 1、返回当前 jQuery 对象的方法。
$("li").addClass("current").css("color","red").removeAttr("index").setAttr("data-index");
// 2、返回其他jQuery 对象的方法。next()、parent()、children()、siblings()等
$("ul").addClass("nav").children()[0].addClass("current").siblings().removeClass("current");
// 3、没有返回 jQuery 对象则会导致链子断掉,返回某个值的方法,比如:
// val()、html()、text()、arrt()、css("属性")等。

四、隐式迭代

jQuery 在获取元素对象时会将获取到的所有 jQuery 元素对象放入一个数组中并返回。当获取到对象后调用某些方法或者执行某些操作时,jQuery会给匹配到的所有元素进行循环遍历,执行相同的方法或者操作,而不用我们再进行循环。这种自行遍历由获取得到的 jQuery 对象组成的伪数组的过程就叫做隐式迭代

<body>
    <ul class="nav">
        <li>这是第1个li</li>
        <li>这是第2个li</li>
        <li>这是第3个li</li>
        <li>这是第4个li</li>
    </ul>
</body>
<script>
	// 获取所有的 li 元素,返回一个伪数组 lis
    var lis = $("ul").children("li");
    console.dir(lis);
    var text = lis.text(); 
    console.log(text); // -> 这是第1个li这是第2个li这是第3个li这是第4个li
    // 给所有的 li 元素绑定点击事件。绑定时不用我们自己使用 for 循环去遍历
    // jQuery 会自行帮我们遍历所有元素并绑定事件,此时所有 li 都会注册有点击事件。
    lis.click(function() {
     
     
        console.log("第" + ($(this).index() + 1) + "被点击了。")
    })
</script>

猜你喜欢

转载自blog.csdn.net/TKOP_/article/details/112845328
今日推荐