• Python 第五十三章 jquery事件


    标签操作

    值操作

    取值:
    	文本输入框:$('#username').val();
    	input,type=radio单选框: $('[type="radio"]:checked').val();,首先找到被选中的标签,再进行取值
    	input,type=checkbox多选框: 通过val方法不能直接获取多选的值,只能拿到一个,想拿到多个项的值,需要循环取值
    		var d = $('[type="checkbox"]:checked');
    		for (var i=0;i<d.length;i++){
    			console.log(d.eq(i).val());
    		}
    	单选下拉框select: -- $('#s1').val();
    	多选下拉框select: -- $('#s2').val(); -- ['1','2']
    
    设置值
    	文本输入框: -- $('#username').val('xxx');
    	input,type=radio单选框: -- $(':radio').val(['1']) 找到所有的radio,然后通过val设置值,达到一个选中的效果.
    	给单选或者多选框设置值的时候,只要val方法中的值和标签的value属性对应的值相同时,那么这个标签就会被选中.
    	此处有坑:$(':radio').val('1');这样设置值,不带中括号的,意思是将所有的input,type=radio的标签的value属性的值设置为1.
    	
    	input,type=checkbox多选框: -- $(':checkbox').val(['1','2']);
    	
    	单选下拉框select: -- $('#s1').val(['3']);
    	多选下拉框select: -- $('#s2').val(['1','2']);
    	
    	统一一个方法:
    		选择框都用中括号设置值.
    

    作业1思路

    绑定点击事件
    1 获取input标签中的值val
    2 val().trim().length 
    3 =0  
    	方式1:提前在input标签后面放一个span标签,加一个类值{color:red},找到span并添加文本内容, .text() .html()
    4 如果不等于0,清空span中的内容
    
    

    属性操作

    设置属性: -- $('#d1').attr({'age1':'18','age2':'19'});
    		单个设置:$('#d1').attr('age1','18');
    查看属性值: -- $('#d1').attr('age1');
    删除属性: -- $('#d1').removeAttr('age1'); 括号里面写属性名称
    
    prop和attr方法的区别:
    总结一下:
    	1.对于标签上有的能看到的属性和自定义属性都用attr
    	2.对于返回布尔值的比如checkbox、radio和option的是否被选中或者设置其被选中与取消选中都用prop。
    	具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()
    	checked示例:
    		attr():
                查看值,checked 选中--'checked'  没选中--undefined
                    $('#nv').attr({'checked':'checked'}); 
                设置值,attr无法完成取消选中
                    $('#nv').attr({'checked':'undefined'});
                    $('#nv').attr({'checked':undefined});
                    
             prop():
             	查看值,checked 选中--true  没选中--false
             		$(':checkbox').prop('checked');
             	设置值:
             		$(':checkbox').prop('checked',true);
             		$(':checkbox').prop('checked',false);
    

    文档处理

    姿势1:添加到指定元素内部的后面
        $(A).append(B)// 把B追加到A
        $(A).appendTo(B)// 把A追加到B
        
    	append示例:
            方式1: 
                创建标签
                    var a = document.createElement('a');
                    $(a).text('百度');
                    $(a).attr('href','http://www.baidu.com');
                    $('#d1').append(a);
            方式2:(重点)
                $('#d1').append('<a href="xx">京东</a>');
    	appendto示例
    		$(a).appendTo('#d1');
    		
    姿势2:添加到指定元素内部的前面
    	$(A).prepend(B)// 把B前置到A
    	$(A).prependTo(B)// 把A前置到B
    姿势3:添加到指定元素外部的后面
    	$(A).after(B)// 把B放到A的后面
    	$(A).insertAfter(B)// 把A放到B的后面
    姿势4:
    	$(A).before(B)// 把B放到A的前面
    	$(A).insertBefore(B)// 把A放到B的前面
    
    移除和清空元素
    	remove()// 从DOM中删除所有匹配的元素。
    	empty()// 删除匹配的元素集合中所有的子节点,包括文本被全部删除,但是匹配的元素还在
    	示例:
    		$('#d1').remove();
    		$('#d1').empty();
    		
    替换:
    	replaceWith()
    	replaceAll()
         示例:
         	$('#d1').replaceWith(a);  用a替换前面的标签
         	$(a).replaceAll('#d1');   
         
    

    克隆(复制标签)

    示例:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    	<button class="btn">屠龙宝刀,点击就送!</button>
    
    </body>
    <script src="jquery.js"></script>
    <script>
        $('.btn').click(function () {
            // var btnEle = $(this).clone(); // 不带参数的克隆不能克隆绑定的事件
            var btnEle = $(this).clone(true); // 参数写个true,就能复制事件
            $(this).after(btnEle);
    
        })
    
    </script>
    
    
    </html>
    

    作业3

    1 模态对话框结合点击事件完成弹出和隐藏
    2 点击取消,关闭对话框
    3 点击确认,关闭对话框,获取用户输入的内容
    4 拼接一个tr标签,将数据放到里面的td标签里面,然后将tr标签放到tbody标签内部的后面
    
    5 开除,点击这一行的那个开除按钮,就将本行tr标签删除 remove方法
    

    事件

    绑定事件的两种方式:
    	// 绑定事件的方式1
        // $("#d1").click(function () {
        //     $(this).css('background-color','green');
        // })
    
        // 方式2
        $('#d1').on('click',function () {
            $(this).css('background-color','green');
        })
    

    常用事件

    click(function(){...})
    hover(function(){...})
    blur(function(){...})
    focus(function(){...})
    change(function(){...}) //内容发生变化,input,select等
    keyup(function(){...})  
    mouseover 和 mouseenter的区别是:mouseover事件是如果该标签有子标签,那么移动到该标签或者移动到子标签时会连续触发,mmouseenter事件不管有没有子标签都只触发一次,表示鼠标进入这个对象
    
    
    示例:
    	<!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Title</title>
            <style>
                #d1{
                    background-color: red;
                    height: 200px;
                     200px;
                }
                #d2{
                    background-color: green;
                    height: 200px;
                     200px;
                }
    
                .dd1{
                    background-color: yellow;
                    height: 40px;
                     40px;
                }
                .dd2{
                    background-color: pink;
                    height: 40px;
                     40px;
                }
    
            </style>
        </head>
        <body>
    
    
    
        <div id="d1">
            <div class="dd1"></div>
        </div>
        <div id="d2">
            <div class="dd2"></div>
        </div>
    
        用户名:<input type="text" id="username">
    
    
        <br>
    
        <!--<select name="" id="s1">-->
        <!--    <option value="1">上海</option>-->
        <!--    <option value="2">深圳</option>-->
        <!--    <option value="3">贵州</option>-->
        <!--</select>-->
    
        <input type="text" id="xxx">
    
        </body>
        <script src="jquery.js"></script>
        <script>
            // 绑定事件的方式1
            // $("#d1").click(function () {
            //     $(this).css('background-color','green');
            // })
    
            // 方式2
            // $('#d1').on('click',function () {
            //     $(this).css('background-color','green');
            // });
            //
            // // 获取光标触发的事件
            // $('#username').focus(function () {
            //     $(this).css('background-color','green');
            // });
            // // 失去光标触发的事件
            // $('#username').blur(function () {
            //     $(this).css('background-color','white');
            // });
            // // 域内容发生变化触发的事件,一般用于select标签
            // $('#s1').change(function () {
            //      // $('#d1').css('background-color','black');
            //     console.log('xxxxx')
            //
            // });
    
            // $('#xxx').change(function () {
            //     console.log($(this).val());
            // })
    
            // 输入内容实时触发的事件,input事件只能on绑定
            // $('#xxx').on('input',function () {
            //     console.log($(this).val());
            // });
            //
            // //绑定多个事件 事件名称空格间隔
            // $('#xxx').on('input blur',function () {
            //     console.log($(this).val());
            // })
    
    
            // 鼠标进入触发的事件
            // $('#d1').mouseenter(function () {
            //     $(this).css('background-color','green');
            // });
            // // 鼠标离开触发的事件
            // $('#d1').mouseout(function () {
            //     $(this).css('background-color','red');
            // });
    
            // hover事件 鼠标进进出出的事件
            // $('#d1').hover(
            //     // 鼠标进入
            //     function () {
            //         $(this).css('background-color','green');
            //     },
            //     // 鼠标离开
            //     function () {
            //         $(this).css('background-color','red');
            //     }
            // );
    
    
            $('#d1').mouseenter(function () {
                console.log('xxx');
            });
            $('#d2').mouseover(function () {
                console.log('ooo');
            });
    		// 键盘按下
    		   // $(window).keydown(function (e) {
                //     console.log(e.keyCode);
                //
                // });
             // 键盘抬起
                $(window).keyup(function (e) {
                    console.log(e.keyCode);
                });
    
        </script>
        </html>
    

    移除事件(不常用)

    .off( events [, selector ][,function(){}])
    off() 方法移除用 .on()绑定的事件处理程序。
    
    $("li").off("click");就可以了
    

    事件冒泡

        // 事件冒泡,子标签和父标签(祖先标签)绑定了相同的事件,比如点击事件,那么当你点击子标签时,会一层一层的往上触发父级或者祖父级等等的事件
        $('.c1').click(function () {
            alert('父级标签!!!');
    
        });
        $('.c2').click(function (e) {
            alert('子标签~~~');
            // 阻止事件冒泡(阻止事件发生)
            return false; //方式1
            // e.stopPropagation() // 方式2
        })
    

    事件委托

    	<div id="d1">
        	<button class="btn">屠龙宝刀,点击就送!</button>.
        	
    	</div>
    
        // 事件委托
        $('#d1').on('click','.btn',function () {
              // $(this)是你点击的儿子标签
            var a= $(this).clone();
            $('#d1').append(a);
        });
    //中间的参数是个选择器,前面这个$('table')是父级标签选择器,选择的是父级标签,意思就是将子标签(子子孙孙)的点击事件委托给了父级标签
    //但是这里注意一点,你console.log(this);你会发现this还是触发事件的那个子标签,这个记住昂
    

    页面载入

    window.onload:
    	原生js的window.onload事件:// onload 等待页面所有内容加载完成之后自动触发的事件
    	window.onload = function(){
                $('.c1').click(function () {
                    $(this).addClass('c2');
                });
    
            };
    
    
    jquery页面载入:
    	$(function () {
                $('.c1').click(function () {
                    $(this).addClass('c2');
                });
            })
    
    非简写方式
    	$(document).ready(function(){
            // 在这里写你的JS代码...
         })
    
    与window.onload的区别
    	1.window.onload()函数有覆盖现象,必须等待着图片资源加载完成之后才能调用
    	2.jQuery的这个入口函数没有函数覆盖现象,文档加载完成之后就可以调用(建议使用此函数)
    
    
    

    jquery的each

    循环数组:
    	var a = [11,22,33];
        $.each(a,function(k,v){
           console.log(k,v);
        })
    
    循环标签对象:
    	$('li').each(function(k,v){
            console.log(k,$(v).text());
        })
    
    return false;终止循环
    
    在遍历过程中可以使用 return false提前结束each循环。 类似于break
    而直接使用return;后面什么都不加,不写false,就是跳过本次循环的意思 类似与continue
    
    
  • 相关阅读:
    定时执行
    history 命令历史
    last
    文件解压缩 tar zip
    硬件信息 dmidecode dmesg lsdev lshw haparm lsusb
    文件加密 解密 pdftk openssl gpg vim
    vim 脚本——插件
    irc
    telnet
    go 垃圾回收机制
  • 原文地址:https://www.cnblogs.com/zhangshan33/p/11557823.html
Copyright © 2020-2023  润新知