• jQuery练习


    jQuery练习

    练习一:爱好选择器

      $(function () {
                //1.点击全选
                var $checkedAllBox = $('#checkedAllBox')
                var $checkedAllBtn = $('#checkedAllBtn')
                var $items = $(':checkbox[name=items]')
                $checkedAllBtn.click(function () {
                    $items.prop('checked',true)
                    $checkedAllBox.prop('checked',true)
                })
                //2.点击全不选
                var $checkedNoBtn = $('#checkedNoBtn')
                $checkedNoBtn.click(function () {
                    $items.prop('checked',false)
                    $checkedAllBox.prop('checked',true)
                })
                //3.反选
                var $checkedRevBtn = $('#checkedRevBtn')
                $checkedRevBtn.click(function () {
                    $items.each(function () {
                        this.checked = !this.checked
                    })
                    $checkedAllBox.prop('checked',$items.filter(':not(:checked)').length===0)
                })
                //4.提交
                var $sendBtn = $('#sendBtn')
                $sendBtn.click(function () {
                    $items.each(function () {
                        if(this.checked){
                            console.log(this.value)
                        }
                    })
                })
                //5.全选/全不选
                $checkedAllBox.click(function () {
                    $items.prop('checked',this.checked)
                })
                //6.点击爱好,更新全选/全不选状态
                $items.click(function () {
                    $checkedAllBox.prop('checked',$items.filter(':not(:checked)').length===0)
                })
            })
    

      

    练习二:添加删除记录

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="jquery-3.4.0.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            /**
             * 1.添加
             * 2.删除
             */
            $(function () {
                $('#addEmpButton').click(function () {
                    //1.收集输入的数据
                    var $name = $('#name')
                    var $email = $('#email')
                    var $salary = $('#salary')
                    var name = $name.val()
                    var email = $email.val()
                    var salary = $salary.val()
                    //2.生成对应的<tr>标签结构,并插入#emplyeeTable中
                     $('<tr></tr>').append('<td>'+ name +'</td>')
                         .append('<td>'+ email +'</td>')
                         .append('<td>'+ salary +'</td>')
                         .append('<td><a href="">delete</a></td>')
                         .appendTo('#employeetable>tbody')
                         .find('a').click(clickDelete)
                    //3.清除输入
                    $name.val('')
                    $email.val('')
                    $salary.val('')
                })
    
                //给所有删除链接绑定点击监听
                $('#employeetable a').click(clickDelete)
           //$('#employeetable').delegate('a','click',clickDelete
                //删除函数
                function clickDelete() {
                    var $tr = $(this).parent().parent()
                    var name = $tr.children(':first').html()
                    if(confirm('确定删除'+ name +'吗')){
                        $tr.remove()
                    }
                    return false
                }
            })
        </script>
    </head>
    <body>
    <br><br>添加新员工<br><br>
    name:<input type="text" name="name" id="name" >  
    email:<input type="text" name="email" id="email" >  
    salary:<input type="text" name="salary" id="salary">
    <br><br>
    <button id="addEmpButton">Submit</button>
    <br><br>
    <hr>
    <br><br>
    <table id="employeetable" border="1" cellpadding="5" cellspacing=0>
        <tbody>
        <tr>
            <td>Name</td>
            <td>Email</td>
            <td>Salary</td>
            <td> </td>
        </tr>
        <tr>
            <td>Tom</td>
            <td>tom@tom.com</td>
            <td>5000</td>
            <td><a href="">delete</a> </td>
        </tr>
        <tr>
            <td>Jerry</td>
            <td>jerry@tsohu.com</td>
            <td>8000</td>
            <td><a href="">delete</a> </td>
        </tr>
        </tbody>
    </table>
    </body>
    </html>
    

    练习三:图片轮播

     

    $(function () {
        /**
         * 1.点击向右(左)的图标,平滑切换到下(上)一页
         * 2.无限循环切换:第一页的上一页为最后页,最后一页的下一页是第一页
         * 3.每隔3s自动滑动到下一页
         * 4.当鼠标进入图片区域时,自动切换停止,当鼠标离开后,又开始自动切换
         * 5.切换页面时,下面的圆点也同步更新
         * 6.点击圆点图标切换到对应的页
         *
         * bug:快速点击时出现问题
         */
            var $container = $('#container')
            var $list = $('#list')
            var $points = $('#pointsDiv')
            var $prev = $('#prev')
            var $next = $('#next')
            var PAGE_WIDTH=600//页的宽度
            var TIME =400//翻页的持续时间
            var ITEM_TIME = 20//单元移动的间隔时间
            var imgCount = $points.length
            var index = 0//当前下标
            var moving = false//标识是否正在翻页
    
            //1.点击向右(左)的图标,平滑切换到下(上)一页
            $prev.click(function () {
                nextPage(false)
            })
            $next.click(function () {
                nextPage(true)
            })
            //2.每隔3s自动滑动到下一页
        var intervalId= setInterval(function () {
            nextPage(true)
        },1000)
    
            //3.当鼠标进入图片区域时,自动切换停止,当鼠标离开后,又开始自动切换
            $container.hover(function () {
                //清除定时器
                clearInterval(intervalId)
            },function () {
                intervalId= setInterval(function () {
                    nextPage(true)
                },1000)
            })
    
        //6.点击圆点图标切换到对应的页
        $points.click(function () {
            //目标页的下标
            var targetIndex = $(this).index()
            //只有当点击的不是当前页的圆点时才翻页
            if (targetIndex != index){
                nextPage(targetIndex)
            }
        })
    
        /**
         * 平滑翻页
         * @param next
         * true:下一页
         * false:上一页
         * 数值:指定下标页
         */
        function nextPage(next) {
    
            /*
            总的偏移量:offset
            总的时间:TIME=400
            单元移动的间隔时间:ITEM_TIME =20
            单元移动的偏移量:itemOffset = offset/(TIME/ITEM_TIME)
    
             */
            //如果正在翻页,直接结束
            if (moving){
                return
            }
            moving = true//标识正在翻页
    
            //总的偏移量:offset
            var offset = 0
            if (typeof next === 'boolean'){
                offset = next ? -PAGE_WIDTH:PAGE_WIDTH
            } else {
                offset = -(next-index)*PAGE_WIDTH
            }
            //计算单位移动的偏移量:itemOffset
            var itemOffset = offset/(TIME/ITEM_TIME)
            //得到当前left值
            var currLeft = $list.position().left
            //计算出目标处的left值
            var targetLeft = currLeft + offset
    
    
    
            //启动循环定时器不断更新$list的left,到达目标处停止定时器
            var intervalId = setInterval(function () {
                //计算最新的currleft
                currLeft +=itemOffset
                if (currLeft === targetLeft){//到达目标位置
                    //清除定时器
                    clearInterval(intervalId)
    
                    //标识翻页停止
                    moving = false
    
                    //如果到达了最右边的图片(1.jpg),跳转到最左边的第2张图片(1.jpg)
                    if (currLeft===-(imgCount+1)*PAGE_WIDTH){
                        currLeft = -PAGE_WIDTH
                    }else if (currLeft===0){
                        //如果到达了最左边的图片(5.jpg),跳转到最右边的倒数第2张图片(5.jpg)
                        currLeft = -imgCount * PAGE_WIDTH
                    }
                }
                $list.css('left',currLeft)
    
            },ITEM_TIME)
            //更新圆点
            updatePoints(next)
    
        }
    
        /**
         * 更新圆点
         * @param next
         */
        function updatePoints(next) {
            //计算目标圆点的下标targetIndex
            var targetIndex = 0
            if (typeof next === 'boolean'){
                if (next){
                    targetIndex = index + 1
                    if (targetIndex === imgCount){
                        targetIndex = 0
                    }
                } else{
                    targetIndex = index - 1
                    if (targetIndex === -1){
                        targetIndex = imgCount-1
                    }
                }
            }else {
                targetIndex = next
            }
            //将当前index的<span>class的on移除
            $points.eq(index).removeClass('on')
    
            //给目标圆点添加class='on'
            $points.eq(targetIndex).addClass('on')
    
            //将index更新为targetIndex
            index = targetIndex
        }
        
    })
    
  • 相关阅读:
    【T-SQL】分布抽取部分数据
    【Tip】如何让引用的dll随附的xml注释文档、pdb调试库等文件不出现在项目输出目录中
    【手记】F5调试报"由于缺少调试目标xxx无法开始调试xxx设置OutputPath和AssemblyName"
    【手记】未能从程序集System.Net.Http.Formatting中加载类型System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter
    摄影基础知识入门
    测试开发进阶必备(附源码)---Dubbo 接口测试技术
    App自动化之dom结构和元素定位方式的详细内容(不看后悔)
    接口自动化测试 | JsonPath 与 Mustache 请求传参的模板化技术
    一文搞定自动化测试框架 RESTAssured 实践(三):对 Response 结果导出
    一文搞定 REST Assured 实践(二):断言实现
  • 原文地址:https://www.cnblogs.com/yangHS/p/10889181.html
Copyright © 2020-2023  润新知