聚焦显示新的样式,怎么样失去焦点恢复成默认的样式?

来源:2-9 jQuery鼠标事件之focusout事件

_青黛

2018-12-28 10:34

$(function () {
    function fn(e) {
        $(this).val(e.data)
    }

    var aa = $("input");

    function a() {
        aa.focusin('慕课网', fn);
        aa.focusin(function () {
            aa.css("border", "3px solid red")
        });

        aa.focusout('', fn);
        aa.focusout(function () {
            $("input").css()
        })
    }

    a();
})




我给失去焦点样式为空的话,没有效果,请问怎么样让他恢复才原来的默认样式?

写回答 关注

2回答

  • 卡迪亚兹
    2018-12-28 15:31:26
    已采纳
    $(function () {
        function fn(e) {
            $(this).val(e.data)
        }
    
        var aa = $("input");
    
        function a() {
            aa.focusin('慕课网', fn);
            aa.focusin(function () {
                aa.css("border", "3px solid red")
            });
    
            aa.focusout('', fn);
            aa.focusout(function () {
                $("input").css()
            })
        }
        a();
    })

    你写的这个其实是对的,就是 aa.focusout() 这个地方,你没有设置 input 失去焦点的样式。

    aa.focusout(function () {
         $("input").css()
    })

    此处应该为:

    aa.focusout(function () {
        $("input").css('border', 'none')
    })


    _青黛

    谢谢老哥,你可能没有试这个代码,但是启发了我,如果border设置成none的话,这个文本框的边框就没了,但是不写none的话刚好变成默认的样式,谢谢,采纳了。

    2019-01-02 21:13:33

    共 1 条回复 >

  • 卡迪亚兹
    2019-01-31 10:11:29

    啊。。不好意思。。确实是忘了测试了。

    其实除了直接在 input 上修改 css ,还可以使用 addClass 和 removeClass 的方式来实现

    <style>.abc{border: 3px solid red;}</style>

    $(function () {

    function fn(e) {

    $(this).val(e.data)

    }


    var aa = $("input");


    function a() {

    aa.focusin('慕课网', fn);

    aa.focusin(function () {

    aa.addClass('abc')

    });


    aa.focusout('', fn);

    aa.focusout(function () {

    aa.removeClass('abc')

    })

    }


    a();



    })


jQuery基础(三)—事件篇

jQuery第三阶段开启事件修炼,掌握对页面进行交互的操作

89997 学习 · 625 问题

查看课程

相似问题