jq基础-键盘事件

173 阅读1分钟
    <input type="text">
    <h3></h3>
    <script src="./jquery-1.12.4.js"></script>
    
        /* 模拟百度一下,用户连续的输入关键字,以最后输入好的内容 为准
        再打印出 你输入的关键字  只打印一次
        */

        /* this是谁调用就是谁的 */
        let timer;
        $('input').keyup(function(){
            clearTimeout(timer)
            // console.log(this);
            /* 解决定时器里面找不到input的this的方法 */
            /* 把当前能获取到input的this 用一个变量that存起来 */
            /* 在定时器里面使用这个变量来调用 */
            let that = this;
            timer = window.setTimeout(function(){
               console.log($(that).val())
           },500)
        })


        /* 写一个input 在里面输入字的时候可以实时显示再h3标签中
        按1键 把你input里面输入的文字 alert打印出来
        */
       /* 防抖 */
       /* 实现输入整个语句结束的时候,再打印向后台发送请求 */
        // let timer;
        // $('input').keyup(function () {
        //     /* 思路:每次抬起时先清除之前的定时器 */
        //     console.log(timer)
        //     clearTimeout(timer)
        //     /* 没敲击一个字母都会执行下面的话 */
        //     /* 下面的定时器会产生一个唯一的id */
        //     /* 每次都会根据唯一的id 把之前的定时器清空 */
        //     /* 所以就会以最后一次的抬起获取的val值为准 */
        //     timer = setTimeout(function () {
        //         console.log('把'+$('input').val()+'发送给后台')
        //     }, 800)
        // })
       
       
        /* $(document).keyup(function(e){
            if(e.keyCode===49){
                alert($('input').val())
            }
        }) */







        /* 按住不松会一直触发keydown */
        // $('input').keydown(function(){
        //     console.log('按下键盘时')
        // })
        // $('input').keyup(function(){
        //     console.log('释放按键时')
        // })
        /* keypress代表键盘敲击过程中产生的事件
        但是键盘按下的时候触发,抬起不触发,一直按不送也会连续触发 */
        // $('input').keypress(function(){
        //      console.log('产生可打印的字符时')
        // })
        // $(document).keyup(function(e){
        //     /* e代表事件源对象 */
        //     /* 每一个按键都有对应的keyCode */
        //     console.log(e);
        //     if(e.keyCode=='13'){
        //         alert('提交成功!')
        //     }
        // })
    </script>
</body>