jQuery-4

冷吉星
2023-12-01
正课:
1. jQuery UI
2. 第三方插件: 日期,验证,照片墙
3. ***封装自定义插件


1. jQuery UI
   autocomplete 自动完成: 
   为什么: 减少输入
   如何: html : <input />
       js: 2件事: 
         1. 数组: 保存所有备选词
         2. $(...).autocomplete({source: 数组})


   button 将a, input, button都转为统一的样式 -boot中也有
   为什么: 统一样式
   如何: $(...).button();


   datapicker: 日期选择: 
   html: 普通的input文本框
        js: $(...).datepicker()


   dialog: 对话框  - boot中有
   为什么: 普通的alert,confirm,prompt 样式不可修改,且兼容性问题
   何时: 今后,在页面中只要弹窗就用dialog
   如何: html: 容器元素包含提示内容
                          容器元素的title属性作为对话框的标题
        js: $(容器元素).dialog(); //让元素变成对话框的样子
             $(容器元素).dialog({autoOpen:false}); //默认隐藏
             $(容器元素).dialog("open"); //弹出对话框


   tabs:  -boot中有
    html : div
                  >ul>li>a href="#div"
                  +div id="..." *n
    js: $(父容器).tabs();


   tooltip: 工具提示: ——boot中有 
    何时: 只要提示用户按钮或输入项的意义时
         其实就是title属性
    为什么: 不同浏览器的title显示样式不一样
    如何: $(document).tooltip(); //对整个页面统一tooltip的样式


2. 第三方插件:  日期 , 验证, 彩砖墙
    日期: layDate  不依赖于jquery
      引入css: "laydate/skins/default/laydate.css"
      html: <input class="laydate-icon"/>
       js: 
         跟换主题: laydate.skin("dahong或molv")
         2种调用: 
            1. 在input的单击事件中调用: laydate();
            2. 在页面加载后调用: laydate({elem: "#input的id"})


    验证: jquery.validate  基于jQuery
      js: $(表单).validate({
              rules:{
name1: "required", //name1的内容必填
                 name2: {
   规则名:值,
                     规则名:值,
                 }
              },
              messages:{
name1: "name1验证失败",
                 name2:{
                     规则名:"name2的规则1验证失败",
                     规则名:"name2的规则1验证失败",
                 }
              }
          })
    规则名: jquery.validate.js的327行


    添加自定义验证规则:   其实就是为jquery.valicator添加一个验证函

       jQuery.validator.addMethod(规则名,fn,msg)
      fn:function(val){//自动获得要验证的元素内容 
           return 验证结果
      }
      自定义的规则,遇到空val,直接返回true,不做验证
 
   彩砖墙:masonry
   html: <div class="container">
                <div class="block"> *n 
   js: $(".container").masonry();


3. ***封装自定义插件: 
   2种: 
    1. 扩展jQuery全局函数:
      jQuery全局对象: window.jQuery 或 window.$
        jQuery全局函数: 在jQuery对象内添加的函数
           vs ES的全局函数: 在window下添加的函数
       如何:  jQuery.方法名=function(){...}
          $.方法名(); 可以调用
          $().方法名(); X
       鄙视: $.each()  vs  $(...).each(function(){...})
          $.each()是jQuery的全局函数,不需要任何查找结果就可直接调用
保存在: 直接保存在jQuery对象上
          $(...).each()是jQuery的实例函数,必须要在查找结果上才能调用
                 保存在: jQuery查询结果集合的原型对象中
       何时: 只要复用一个基于jQuery的函数时,就将函数添加到jQuery全局对象中。
         
    2. 封装自定义部件: 
       1. myAccordion插件
       在使用jQuery已经实现功能和样式的基础上: 
        //制作插件
        1. 所需的所有样式,放入专门的css文件中
        2. 所需的js,放入专门的js文件中: 
             1. 判断是否先引入jQuery
             2. 为jQuery添加实例方法
为元素侵入class和行为
        //制作完成
        如何: 1. 引入自定义插件的css
                 2. 引入jQuery
                 3. 引入自定义插件的js
                 4. 按照插件要求,编写html内容
                 5. 在自定义脚本中直接找到父元素,调用插件函数


  <link rel="stylesheet"
href="myAccordion/myAccordion.css">
 
  <div id="d1">
  </div>
  <script src="js/jquery-1.11.3.js"></script>
  <script src="myAccordion/myAccordion.js"></script>
  <script>
    $("#d1").myAccordion();
  </script>































 类似资料: