JQuery进阶

191 阅读2分钟

日期:2021年12月9日

出处:黑马程序员JavaWeb全套教程,Java Web从基础到项目实战(IDEA版)

www.bilibili.com/video/BV1qv…

正文


动画

就是网页中的动态效果,这里就简单演示一下隐藏和显示元素

<script>
/*
    show([speed],[easing],[fn])
    hide([speed,[easing],[fn]])
    toggle([speed],[easing],[fn])
        speed:动画的速度。三个预定义的值("slow","normal", "fast")或
        表示动画时长的毫秒数值(如:1000)
        easing:用来指定切换效果,默认是"swing",可用参数"linear"
            swing:动画执行时效果是 先慢,中间快,最后又慢
            linear:动画执行时速度是匀速的
        fn:在动画完成时执行的函数,每个元素执行一次。
    */
function hideFn(){
  
    //淡入淡出方式的动画
    $("#showDiv").fadeOut("slow","swing",function () {
        alert("xiaoshile ")
    });
  
    //滑动方式的动画
    $("#showDiv").slideUp("slow","swing",function () {
        alert("xiaoshile ")
    });
  
		//默认方式动画
  $("#showDiv").hide(8000,"swing",function () {
        alert("消失了!!!")
    })
}
function showFn(){
  
  //默认方式动画
    $("#showDiv").show("slow","swing",function () {
        alert("出现了!!!")
    })
  
    //滑动方式动画
    $("#showDiv").slideDown("slow","swing",function () {
        alert("出现了!!! ")
    });
  
    //淡入淡出方式动画
    $("#showDiv").fadeIn("slow","swing",function () {
        alert("出现了!!! ")
    });
}
function toggleFn(){
  
    //默认方式动画
    $("#showDiv").toggle("slow","swing",function () {
        alert("改变了!!!")
    });
  
    // 滑动方式动画
    $("#showDiv").slideToggle("slow","swing",function () {
        alert("改变了!!!")
    });
  
    // 淡入淡出方式动画
    $("#showDiv").fadeToggle("slow","swing",function () {
        alert("改变了!!!")
    });
}
</script>

2021-12-10-09-32-33.gif

遍历

JS的遍历和java的循环遍历几乎一样,所以在这里就不做解释了

JQ的遍历有三种:

  1. jq对象.each(callback)
  2. $.each(object, [callback])
  1. for...of: jquery 3.0 版本之后 提供的方式 (类似与java中的增强for循环即for...earch)
    • for(元素对象 of 容器对象)

代码演示:

<script>
//js遍历
    $(function () {
       // 1.获取ul下的所有的li
       var $city = $("#city li");
       // 2.遍历li
        for (var i = 0 ;i<$city.length;i++){
            alert(i+":"+$city[i].innerHTML);
        }
//jq遍历之     jq对象.each(callback)
        $city.each(function (index,element) {
        // 1.1获取li对象,第一种方式 this
         alert(this.innerHTML);
         alert($(this).html())
        // 1.2获取li对象,第二种方式 在回调函数中定义参数 index索引 和 element元素对象
        alert(index+":"+element.innerHTML);
        alert(index+":"+$(element).htlml());
    });
//jq遍历之     $.each(object, [callback])
        $.each($city,function () {
            alert($(this).html())
        })
//jq遍历之     for...of
        for (li of $city) {
            alert($(li).html())
        }
    });
</script>

break结束循环

continue结束本次循环,继续下次的循环

特殊写法:

事件绑定

不同种类事件绑定的代码演示:

<script>
/*    jquery标准的绑定方式
    jq对象.实践方法(回调函数);*/

    $(function(){
       $("#name").click(function () {
           alert("我被点击了!!!")
       })
    });

// 链式编程
    $(function () {
        $("#name").mouseover(function () {
            alert("鼠标来了!!!")
        }).mouseout(function () {
            alert("鼠标溜了!!!")
        });
    });

/*		jq对象.on("事件名称",回调函数)
		jq对象.off("事件名称")
		*/

    $(function () {
        $("#btn").on("click",function () {
            alert("我被on了!!!")
        });

        $("#btn2").click(function () {
            //接触btn按钮的单击事件
            $("#btn1").off("click");
            $("#btn").off();    //将组建上所有事件全部解绑
        });
    });
</script>

不是太懂回调函数是什么东西,查了些资料,找到了个通俗易懂的说法:

回调函数

打个比方,有一家旅馆提供叫醒服务,但是要求旅客自己决定叫醒的方法。可以是打客房电话,也可以是派服务员去敲门,睡得死怕耽误事的,还可以要求往自己头上浇盆水。这里,“叫醒”这个行为是旅馆提供的,相当于库函数,但是叫醒的方式是由旅客决定并告诉旅馆的,也就是回调函数。而旅客告诉旅馆怎么叫醒自己的动作,也就是把回调函数传入库函数的动作,称为登记回调函数(to register a callback function)。

事件切换:toggle

注意:1.9版本 .toggle() 方法删除,所以在1.9之后的高版本中将无法使用toggle,但是jQuery Migrate(迁移)插件可以恢复此功能

<script src="../js/jquery-migrate-1.0.0.js" type="text/javascript" charset="utf-8"></script>

插件

增强JQuery的功能

实现方式:

  1. $.fn.extend(object) :
  • 增强通过Jquery获取的对象的功能 $("#id")
  1. $.extend(object) :
  • 增强JQeury对象自身的功能 $/jQuery

拓展

JS中有好多方法遗忘了,这节课又提到了所以就顺手记一下增强记忆

  • setTimeout:只执行一次的定时器
  • setInterval:循环的定时器
  • Math.floor():向下取整
  • Math.random():随机生成0.000 ---> 0.999之间的小数
  • JS中方法的定义:function 方法名(参数){方法体}
  • 处理按钮是否可以使用的效果:
  • 按钮对象.prop("disabled",true) 按钮不可用
  • 按钮对象.prop("disabled",false) 按钮可用

总结


今天学习JQuery高级,本身这部分知识还是很轻松的,但是这几节课的demo有好多综合了前面的知识,我发现自己遗忘了好多。JQuery的语法特别简略,今天的重点是事件的绑定,因为它是这几节课中最通用的,以后写代码也会时常用到JQ的事件绑定和遍历,而这几节课学习的其他比如说动画和插件都是起到画龙点睛的作用,常规掌握即可