jQuery——为了考试/(ㄒoㄒ)/~~

目录

jQuery常用API

1. jQuery 选择器

 1.2  jQuery 基础选择器

 1.2  jQuery 层级选择器​编辑

 1.3  隐式迭代

1.4  jQuery 筛选选择器

 1.5  jQuery 筛选方法

 1.6  jQuery 里面的排他思想

1.7  链式编程

2. jQuery 样式操作

2.1  操作 css 方法

2.2  设置类样式方法

3. jQuery 效果

 3.1  显示隐藏效果

3.2  滑动效果

3.3  事件切换

4. jQuery 属性操作

4.1  设置或获取元素固有属性值 prop()

4.2  设置或获取元素自定义属性值 attr()

4.3  数据缓存 data()

5. jQuery 内容文本值

5.1. 普通元素内容 html()( 相当于原生inner HTML)

5.2. 普通元素文本内容 text()   (相当与原生 innerText)

5.3. 表单的值 val()( 相当于原生value)

6. jQuery 元素操作

6.1 遍历元素

6.2 创建元素

6.3 添加元素

6.4 删除元素

7. jQuery 尺寸、位置操作

7.1  jQuery 尺寸

7.2  jQuery 位置

案例展示:购物车案例模块-全选

jQuery事件

1. jQuery 事件注册

单个事件注册

2. jQuery 事件处理

2.1 事件处理 on() 绑定事件

2.2 事件处理 off() 解绑事件

2.3 自动触发事件 trigger()

3. jQuery 事件对象

jQuery的Ajax

1.jQuery load() 方法

2.jQuery AJAX get() 和 post() 方法

jQuery $.get() 方法

jQuery $.post() 方法

jQuery $.Ajax()方法


jQuery常用API

1. jQuery 选择器

 1.2  jQuery 基础选择器

$(“选择器”)   //  里面选择器直接写 CSS 选择器即可,但是要加引号

 1.2  jQuery 层级选择器

 1.3  隐式迭代

遍历内部 DOM 元素(伪数组形式存储)的过程就叫做隐式迭代。

简单理解:给匹配到的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化我们的操作,方便我们调用。

jQuery 设置样式:  $('div').css('属性', '值') 

<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
//给四个div设置背景颜色为粉色 jquery对象不能使用style
//隐式迭代就是把匹配的所有元素内部进行遍历循环,给每一个元素添加css这个方法
$("div").css("background", "pink");

1.4  jQuery 筛选选择器

  • first() 方法返回被选元素的首个元素。
  • last() 方法返回被选元素的最后一个元素。
  • eq() 方法返回被选元素中带有指定索引号的元素。
  • filter() 方法允许您规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回。
  • not() 方法返回不匹配标准的所有元素。

 1.5  jQuery 筛选方法

 重点: parent()  children()  find()  siblings()  eq()

  • parent() 方法返回被选元素的直接父元素。
  • parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)。
  • parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。
$(document).ready(function(){
  $("span").parentsUntil("div");
});
  •  children() 方法返回被选元素的所有直接子元素。
  • find() 方法返回被选元素的后代元素,一路向下直到最后一个后代。
  • siblings() 方法返回被选元素的所有同胞元素。
  • next() 方法返回被选元素的下一个同胞元素。
  • nextAll() 方法返回被选元素的所有跟随的同胞元素。
  • nextUntil() 方法返回介于两个给定参数之间的所有跟随的同胞元素。

 1.6  jQuery 里面的排他思想

想要多选一的效果,排他思想:当前元素设置样式,其余的兄弟元素清除样式。

<button>快速</button>
<button>快速</button>
<button>快速</button>
<button>快速</button>
<button>快速</button>
<button>快速</button>
<button>快速</button>
<script>
    $(function() {
        // 1. 隐式迭代 给所有的按钮都绑定了点击事件
        $("button").click(function() {
            // 2. 当前的元素变化背景颜色
            $(this).css("background", "pink");
            // 3. 其余的兄弟去掉背景颜色 隐式迭代
            $(this).siblings("button").css("background", "");
        });
    })
</script>

1.7  链式编程

$(this).css('color', 'red').sibling().css('color', '');    

使用链式编程一定注意是哪个对象执行样式.

2. jQuery 样式操作

2.1  操作 css 方法

jQuery 可以使用 css 方法来修改简单元素样式; 也可以操作类,修改多个样式。

1. 参数只写属性名,则是返回属性值

$(this).css(''color'');

2.  参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,值如果是数字可以不用跟单位和引号

$(this).css(''color'', ''red'');

3.  参数可以是对象形式,方便设置多组样式。属性名和属性值用冒号隔开, 属性可以不用加引号

$(this).css({ "color":"white","font-size":"20px"});

2.2  设置类样式方法

作用等同于以前的 classList,可以操作类样式, 注意操作类里面的参数不要加点。

1. 添加类

$(“div”).addClass(''current'');

2.  移除类

$(“div”).removeClass(''current'');

3.  切换类

$(“div”).toggleClass(''current'');

<div class="tab">
        <div class="tab_list">
            <ul>
                <li class="current">商品介绍</li>
                <li>规格与包装</li>
                <li>售后保障</li>
                <li>商品评价(50000)</li>
                <li>手机社区</li>
            </ul>
        </div>
        <div class="tab_con">
            <div class="item" style="display: block;">
                商品介绍模块内容
            </div>
            <div class="item">
                规格与包装模块内容
            </div>
            <div class="item">
                售后保障模块内容
            </div>
            <div class="item">
                商品评价(50000)模块内容
            </div>
            <div class="item">
                手机社区模块内容
            </div>

        </div>
    </div>
    <script>
        $(function() {
            // 1.点击上部的li,当前li 添加current类,其余兄弟移除类
            $(".tab_list li").click(function() {
                // 链式编程操作
                $(this).addClass("current").siblings().removeClass("current");
                // 2.点击的同时,得到当前li 的索引号
                var index = $(this).index();
                console.log(index);
                // 3.让下部里面相应索引号的item显示,其余的item隐藏
                $(".tab_con .item").eq(index).show().siblings().hide();
            });
        })
    </script>

3. jQuery 效果

 3.1  显示隐藏效果

1. 显示语法规范

show([speed,[easing],[fn]])

2. 显示参数

(1)参数都可以省略, 无动画直接显示。

(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。

(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。

(4)fn:  回调函数,在动画完成时执行的函数,每个元素执行一次。

1. 隐藏语法规范

hide([speed,[easing],[fn]])

2. 隐藏参数

(1)参数都可以省略, 无动画直接显示。

(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。

(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。

(4)fn:  回调函数,在动画完成时执行的函数,每个元素执行一次。

1. 切换语法规范

toggle([speed,[easing],[fn]])

2. 切换参数

(1)参数都可以省略, 无动画直接显示。

(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。 (

3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。

(4)fn:  回调函数,在动画完成时执行的函数,每个元素执行一次。  建议:平时一般不带参数,直接显示隐藏即可。

    <button>显示</button>
    <button>隐藏</button>
    <button>切换</button>
    <div></div>
    <script>
        $(function() {
            $("button").eq(0).click(function() {
                $("div").show(1000, function() {
                    alert(1);
                });
            })
            $("button").eq(1).click(function() {
                $("div").hide(1000, function() {
                    alert(1);
                });
            })
            $("button").eq(2).click(function() {
                    $("div").toggle(1000);
                })
                // 一般情况下,我们都不加参数直接显示隐藏就可以了
        });
    </script>

3.2  滑动效果

1. 下滑效果语法规范

slideDown([speed,[easing],[fn]])

2. 下滑效果参数

(1)参数都可以省略。

(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。

(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。

(4)fn:  回调函数,在动画完成时执行的函数,每个元素执行一次。

1. 上滑效果语法规范

slideUp([speed,[easing],[fn]])

2. 上滑效果参数

(1)参数都可以省略。

(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。

(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。

(4)fn:  回调函数,在动画完成时执行的函数,每个元素执行一次。

1. 滑动切换效果语法规范

slideToggle([speed,[easing],[fn]])

2. 滑动切换效果参数

(1)参数都可以省略。

(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。

(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。

(4)fn:  回调函数,在动画完成时执行的函数,每个元素执行一次。

    <button>下拉滑动</button>
    <button>上拉滑动</button>
    <button>切换滑动</button>
    <div></div>
    <script>
        $(function() {
            $("button").eq(0).click(function() {
                // 下滑动 slideDown()
                $("div").slideDown();
            })
            $("button").eq(1).click(function() {
                // 上滑动 slideUp()
                $("div").slideUp(500);


            })
            $("button").eq(2).click(function() {
                // 滑动切换 slideToggle()

                $("div").slideToggle(500);

            });

        });
    </script>

3.3  事件切换

hover([over,]out)

(1)over:鼠标移到元素上要触发的函数(相当于mouseenter)

(2)out:鼠标移出元素要触发的函数(相当于mouseleave)

(3)如果只写一个函数,则鼠标经过和离开都会触发它

4. jQuery 属性操作

4.1  设置或获取元素固有属性值 prop()

所谓元素固有属性就是元素本身自带的属性,比如 <a> 元素里面的 href ,比如 <input> 元素里面的 type。

1. 获取属性语法

prop(''属性'')

2. 设置属性语法

prop(''属性'', ''属性值'')

4.2  设置或获取元素自定义属性值 attr()

用户自己给元素添加的属性,我们称为自定义属性。 比如给 div 添加 index =“1”。

1. 获取属性语法

attr(''属性'')      // 类似原生 getAttribute()

2. 设置属性语法

attr(''属性'', ''属性值'')   // 类似原生 setAttribute()

4.3  数据缓存 data()

data() 方法可以在指定的元素上存取数据,并不会修改 DOM 元素结构。一旦页面刷新,之前存放的数据都将被移除。

1. 附加数据语法

data(''name'',''value'')   // 向被选元素附加数据  

2. 获取数据语法

date(''name'')             //   向被选元素获取数据  

5. jQuery 内容文本值

主要针对元素的内容还有表单的值操作。

5.1. 普通元素内容 html()( 相当于原生inner HTML)

html()             // 获取元素的内容

html(''内容'')   // 设置元素的内容

5.2. 普通元素文本内容 text()   (相当与原生 innerText)

text()                     // 获取元素的文本内容

text(''文本内容'')   // 设置元素的文本内容

5.3. 表单的值 val()( 相当于原生value)

val()              // 获取表单的值

val(''内容'')   // 设置表单的值

6. jQuery 元素操作

主要是遍历、创建、添加、删除元素操作。

6.1 遍历元素

jQuery 隐式迭代是对同一类元素做了同样的操作。 如果想要给同一类元素做不同操作,就需要用到遍历。

语法1$("div").each(function (index, domEle) { xxx; })      

1. each() 方法遍历匹配的每一个元素。主要用DOM处理。 each 每一个

2. 里面的回调函数有2个参数:  index 是每个元素的索引号;  demEle 是每个DOM元素对象,不是jquery对象

3. 所以要想使用jquery方法,需要给这个dom元素转换为jquery对象  $(domEle)

语法2:$.each(object,function (index, element) { xxx; })      

1. $.each()方法可用于遍历任何对象。主要用于数据处理,比如数组,对象

2. 里面的函数有2个参数:  index 是每个元素的索引号;  element  遍历内容

6.2 创建元素

语法:$(''<li></li>'');    

动态的创建了一个 <li>  

6.3 添加元素

1. 内部添加

element.append(''内容'')  

把内容放入匹配元素内部最后面,类似原生 appendChild。

element.prepend(''内容'')  

把内容放入匹配元素内部最前面。

2. 外部添加

element.after(''内容'')        //  把内容放入目标元素后面

element.before(''内容'')    //  把内容放入目标元素前面

1).内部添加元素,生成之后,它们是父子关系。

2).外部添加元素,生成之后,他们是兄弟关系。

6.4 删除元素

element.remove()   //  删除匹配的元素(本身)

element.empty()    //  删除匹配的元素集合中所有的子节点

element.html('''')   //  清空匹配的元素内容

1).remove 删除元素本身。

2).empt() 和  html('''') 作用等价,都可以删除元素里面的内容,只不过 html 还可以设置内容。

7. jQuery 尺寸、位置操作

7.1  jQuery 尺寸

 以上参数为空,则是获取相应值,返回的是数字型。

如果参数为数字,则是修改相应值。

参数可以不必写单位。

7.2  jQuery 位置

位置主要有三个: offset()、position()、scrollTop()/scrollLeft()

1. offset() 设置或获取元素偏移

1).offset() 方法设置或返回被选元素相对于文档的偏移坐标,跟父级没有关系。

2).该方法有2个属性 left、top 。offset().top  用于获取距离文档顶部的距离,offset().left 用于获取距离文档左侧的距离。

3).可以设置元素的偏移:offset({ top: 10, left: 30 });

2. position() 获取元素偏移

1).position() 方法用于返回被选元素相对于带有定位的父级偏移坐标,如果父级都没有定位,则以文档为准。

2).该方法有2个属性 left、top。position().top 用于获取距离定位父级顶部的距离,position().left 用于获取距离定位父级左侧的距离。

3).该方法只能获取。

3. scrollTop()/scrollLeft() 设置或获取元素被卷去的头部和左侧

scrollTop() 方法设置或返回被选元素被卷去的头部。

不跟参数是获取,参数为不带单位的数字则是设置被卷去的头部。

案例展示:购物车案例模块-全选

html: 

<div class="c-container">
        <div class="w">
            <div class="cart-filter-bar">
                <em>全部商品</em>
            </div>
            <!-- 购物车主要核心区域 -->
            <div class="cart-warp">
                <!-- 头部全选模块 -->
                <div class="cart-thead">
                    <div class="t-checkbox">
                        <input type="checkbox" name="" id="" class="checkall"> 全选
                    </div>
                    <div class="t-goods">商品</div>
                    <div class="t-price">单价</div>
                    <div class="t-num">数量</div>
                    <div class="t-sum">小计</div>
                    <div class="t-action">操作</div>
                </div>
                <!-- 商品详细模块 -->
                <div class="cart-item-list">
                    <div class="cart-item check-cart-item">
                        <div class="p-checkbox">
                            <input type="checkbox" name="" id="" checked class="j-checkbox">
                        </div>
                        <div class="p-goods">
                            <div class="p-img">
                                <img src="upload/p1.jpg" alt="">
                            </div>
                            <div class="p-msg">【5本26.8元】经典儿童文学彩图青少版八十天环游地球中学生语文教学大纲</div>
                        </div>
                        <div class="p-price">¥12.60</div>
                        <div class="p-num">
                            <div class="quantity-form">
                                <a href="javascript:;" class="decrement">-</a>
                                <input type="text" class="itxt" value="1">
                                <a href="javascript:;" class="increment">+</a>
                            </div>
                        </div>
                        <div class="p-sum">¥12.60</div>
                        <div class="p-action"><a href="javascript:;">删除</a></div>
                    </div>
                    <div class="cart-item">
                        <div class="p-checkbox">
                            <input type="checkbox" name="" id="" class="j-checkbox">
                        </div>
                        <div class="p-goods">
                            <div class="p-img">
                                <img src="upload/p2.jpg" alt="">
                            </div>
                            <div class="p-msg">【2000张贴纸】贴纸书 3-6岁 贴画儿童 贴画书全套12册 贴画 贴纸儿童 汽</div>
                        </div>
                        <div class="p-price">¥24.80</div>
                        <div class="p-num">
                            <div class="quantity-form">
                                <a href="javascript:;" class="decrement">-</a>
                                <input type="text" class="itxt" value="1">
                                <a href="javascript:;" class="increment">+</a>
                            </div>
                        </div>
                        <div class="p-sum">¥24.80</div>
                        <div class="p-action"><a href="javascript:;">删除</a></div>
                    </div>
                    <div class="cart-item">
                        <div class="p-checkbox">
                            <input type="checkbox" name="" id="" class="j-checkbox">
                        </div>
                        <div class="p-goods">
                            <div class="p-img">
                                <img src="upload/p3.jpg" alt="">
                            </div>
                            <div class="p-msg">唐诗三百首+成语故事全2册 一年级课外书 精装注音儿童版 小学生二三年级课外阅读书籍</div>
                        </div>
                        <div class="p-price">¥29.80</div>
                        <div class="p-num">
                            <div class="quantity-form">
                                <a href="javascript:;" class="decrement">-</a>
                                <input type="text" class="itxt" value="1">
                                <a href="javascript:;" class="increment">+</a>
                            </div>
                        </div>
                        <div class="p-sum">¥29.80</div>
                        <div class="p-action"><a href="javascript:;">删除</a></div>
                    </div>
                </div>

                <!-- 结算模块 -->
                <div class="cart-floatbar">
                    <div class="select-all">
                        <input type="checkbox" name="" id="" class="checkall">全选
                    </div>
                    <div class="operation">
                        <a href="javascript:;" class="remove-batch"> 删除选中的商品</a>
                        <a href="javascript:;" class="clear-all">清理购物车</a>
                    </div>
                    <div class="toolbar-right">
                        <div class="amount-sum">已经选<em>1</em>件商品</div>
                        <div class="price-sum">总价: <em>¥12.60</em></div>
                        <div class="btn-area">去结算</div>
                    </div>
                </div>
            </div>
        </div>

    </div>

js:

$(function() {
    // 1. 全选 全不选功能模块
    // 就是把全选按钮(checkall)的状态赋值给 三个小的按钮(j-checkbox)就可以了
    // 事件可以使用change
    $(".checkall").change(function() {
        // console.log($(this).prop("checked"));
        $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));
        if ($(this).prop("checked")) {
            // 让所有的商品添加 check-cart-item 类名
            $(".cart-item").addClass("check-cart-item");
        } else {
            // check-cart-item 移除
            $(".cart-item").removeClass("check-cart-item");
        }
    });
    // 2. 如果小复选框被选中的个数等于3 就应该把全选按钮选上,否则全选按钮不选。
    $(".j-checkbox").change(function() {
        // if(被选中的小的复选框的个数 === 3) {
        //     就要选中全选按钮
        // } else {
        //     不要选中全选按钮
        // }
        // console.log($(".j-checkbox:checked").length);
        // $(".j-checkbox").length 这个是所有的小复选框的个数
        if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
            $(".checkall").prop("checked", true);
        } else {
            $(".checkall").prop("checked", false);
        }
        if ($(this).prop("checked")) {
            // 让当前的商品添加 check-cart-item 类名
            $(this).parents(".cart-item").addClass("check-cart-item");
        } else {
            // check-cart-item 移除
            $(this).parents(".cart-item").removeClass("check-cart-item");
        }
    });
    // 3. 增减商品数量模块 首先声明一个变量,当我们点击+号(increment),就让这个值++,然后赋值给文本框。
    $(".increment").click(function() {
        // 得到当前兄弟文本框的值
        var n = $(this).siblings(".itxt").val();
        // console.log(n);
        n++;
        $(this).siblings(".itxt").val(n);
        // 3. 计算小计模块 根据文本框的值 乘以 当前商品的价格  就是 商品的小计
        // 当前商品的价格 p  
        var p = $(this).parents(".p-num").siblings(".p-price").html();
        // console.log(p);
        p = p.substr(1);
        console.log(p);
        var price = (p * n).toFixed(2);
        // 小计模块 
        // toFixed(2) 可以让我们保留2位小数
        $(this).parents(".p-num").siblings(".p-sum").html("¥" + price);
        getSum();
    });
    $(".decrement").click(function() {
        // 得到当前兄弟文本框的值
        var n = $(this).siblings(".itxt").val();
        if (n == 1) {
            return false;
        }
        // console.log(n);
        n--;
        $(this).siblings(".itxt").val(n);
        // var p = $(this).parent().parent().siblings(".p-price").html();
        // parents(".p-num") 返回指定的祖先元素
        var p = $(this).parents(".p-num").siblings(".p-price").html();
        // console.log(p);
        p = p.substr(1);
        console.log(p);
        // 小计模块 
        $(this).parents(".p-num").siblings(".p-sum").html("¥" + (p * n).toFixed(2));
        getSum();
    });
    //  4. 用户修改文本框的值 计算 小计模块  
    $(".itxt").change(function() {
        // 先得到文本框的里面的值 乘以 当前商品的单价 
        var n = $(this).val();
        // 当前商品的单价
        var p = $(this).parents(".p-num").siblings(".p-price").html();
        // console.log(p);
        p = p.substr(1);
        $(this).parents(".p-num").siblings(".p-sum").html("¥" + (p * n).toFixed(2));
        getSum();
    });
    // 5. 计算总计和总额模块
    getSum();

    function getSum() {
        var count = 0; // 计算总件数 
        var money = 0; // 计算总价钱
        $(".itxt").each(function(i, ele) {
            count += parseInt($(ele).val());
        });
        $(".amount-sum em").text(count);
        $(".p-sum").each(function(i, ele) {
            money += parseFloat($(ele).text().substr(1));
        });
        $(".price-sum em").text("¥" + money.toFixed(2));
    }
    // 6. 删除商品模块
    // (1) 商品后面的删除按钮
    $(".p-action a").click(function() {
        // 删除的是当前的商品 
        $(this).parents(".cart-item").remove();
        getSum();
    });
    // (2) 删除选中的商品
    $(".remove-batch").click(function() {
        // 删除的是小的复选框选中的商品
        $(".j-checkbox:checked").parents(".cart-item").remove();
        getSum();
    });
    // (3) 清空购物车 删除全部商品
    $(".clear-all").click(function() {
        $(".cart-item").remove();
        getSum();
    })
})

jQuery事件

1. jQuery 事件注册

单个事件注册

语法:

element.事件(function(){})      

$(“div”).click(function(){  事件处理程序 })      

其他事件和原生基本一致。 比如mouseover、mouseout、blur、focus、change、keydown、keyup、resize、scroll 等

2. jQuery 事件处理

2.1 事件处理 on() 绑定事件

语法:

element.on(events,[selector],fn)      

1. events:一个或多个用空格分隔的事件类型,如"click"或"keydown" 。

2. selector: 元素的子元素选择器 。

3. fn:回调函数 即绑定在元素身上的侦听函数。

on() 方法优势1:

可以绑定多个事件,多个处理事件处理程序。

 $(“div”).on({
  mouseover: function(){}, 
  mouseout: function(){},
  click: function(){}	
});       

如果事件处理程序相同

 $(“div”).on(“mouseover mouseout”, function() {
   $(this).toggleClass(“current”);
  });       

on() 方法优势2:

可以事件委派操作 。事件委派的定义就是,把原来加给子元素身上的事件绑定在父元素身上,就是把事件委派给父元素。

$('ul').on('click', 'li', function() {
    alert('hello world!');
});       

在此之前有bind(), live() delegate()等方法来处理事件绑定或者事件委派,最新版本的请用on替代他们。

on() 方法优势3:

动态创建的元素,click() 没有办法绑定事件, on() 可以给动态生成的元素绑定事件

 $(“div").on("click",”p”, function(){
     alert("俺可以给动态生成的元素绑定事件")
 });       

 $("div").append($("<p>我是动态创建的p</p>"));

2.2 事件处理 off() 解绑事件

off() 方法可以移除通过 on() 方法添加的事件处理程序。

$("p").off() // 解绑p元素所有事件处理程序

$("p").off( "click")  // 解绑p元素上面的点击事件 后面的 foo 是侦听函数名

$("ul").off("click", "li");   // 解绑事件委托

如果有的事件只想触发一次, 可以使用 one() 来绑定事件。

2.3 自动触发事件 trigger()

有些事件希望自动触发, 比如轮播图自动播放功能跟点击右侧按钮一致。可以利用定时器自动触发右侧按钮点击事件,不必鼠标点击触发。

element.click()  // 第一种简写形式

element.trigger("type") // 第二种自动触发模式

$("p").on("click", function () {   alert("hi~"); });

$("p").trigger("click"); // 此时自动触发点击事件,不需要鼠标点击

有些事件希望自动触发, 比如轮播图自动播放功能跟点击右侧按钮一致。可以利用定时器自动触发右侧按钮点击事件,不必鼠标点击触发。

element.triggerHandler(type)  // 第三种自动触发模式

triggerHandler模式不会触发元素的默认行为,这是和前面两种的区别。

3. jQuery 事件对象

事件被触发,就会有事件对象的产生。

element.on(events,[selector],function(event) {})      

阻止默认行为:event.preventDefault()   或者 return  false

阻止冒泡: event.stopPropagation()      

jQuery的Ajax

1.jQuery load() 方法

jQuery load() 方法是简单但强大的 AJAX 方法。

load() 方法从服务器加载数据,并把返回的数据放入被选元素中。

$(selector).load(URL,data,callback);

2.jQuery AJAX get() 和 post() 方法

jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。

HTTP 请求:GET vs. POST

两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST。

  • GET - 从指定的资源请求数据
  • POST - 向指定的资源提交要处理的数据

GET 基本上用于从服务器获得(取回)数据。注释:GET 方法可能返回缓存数据。

POST 也可用于从服务器获取数据。不过,POST 方法不会缓存数据,并且常用于连同请求一起发送数据。

jQuery $.get() 方法

$.get() 方法通过 HTTP GET 请求从服务器上请求数据。

$.get(URL,callback);

jQuery $.post() 方法

$.post() 方法通过 HTTP POST 请求从服务器上请求数据。

$.post(URL,data,callback);

jQuery $.Ajax()方法

$.ajax({
            url: '',
            type: 'get',//或者post
            // 设置的是请求参数
            data: {},
            dataType: 'json', // 用于设置响应体的类型 注意 跟 data 参数没关系!!!
                           // 一旦设置的 dataType 选项,就不再关心 服务端 响应的Content-Type 了
                         // 客户端会主观认为服务端返回的就是 JSON 格式的字符串
            //jQuery中ajax的回调事件
            beforeSend: function (xhr) {
                // 在所有发送请求的操作(open, send)之前执行
                console.log('beforeSend', xhr);
            },
            success: function (res) {
                // 只有请求成功(状态码为200)才会执行这个函数
                console.log(res);
            },
            error: function (xhr) {
                // 只有请求不正常(状态码不为200)才会执行
                console.log('error', xhr);
            },
            complete: function (xhr) {
                // 不管是成功还是失败都是完成,都会执行这个 complete 函数(一般成功与失败都需要执行的操作写在这里)
                console.log('complete', xhr);
            }
        });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值