为了账号安全,请及时绑定邮箱和手机立即绑定

这节看不懂啊 。。。为什么 $(".aaron").focus(function() { $(this).css('border', '2px solid red') })这个没有效果呢

这节看不懂啊 。。。为什么 $(".aaron").focus(function() {         $(this).css('border', '2px solid red')     })这个没有效果呢

正在回答

6 回答

这一段本身就是不实现效果的。

注意原文中这一句话:“div是input的父元素,当它包含的元素input触发了focus事件时,它就产生了focusin()事件。”

所以说,如果代码如下,则input上出现效果,且div上产生focusin( )事件

$(".aaron input").focus(function() {         $(this).css('border', '2px solid red')     })


2 回复 有任何疑惑可以回复我~
#1

点点圈圈错错真真 提问者

非常感谢!
2016-12-01 回复 有任何疑惑可以回复我~

但是focus事件不是绑定到.arron的div上了吗,点击div区域不应该触发吗

0 回复 有任何疑惑可以回复我~
#1

qq_逐梦之旅GO_0

div是input的父元素,当它包含的元素input触发了focus事件时,它就产生了focusin()事件。 focus()在元素本身产生,focusin()在元素包含的元素中产生
2018-11-04 回复 有任何疑惑可以回复我~

<!DOCTYPE html>

<html>

<head>

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

    <title></title>

    <style>

    .left div,

    .right div {

        width: 500px;

        height: 50px;

        padding: 5px;

        margin: 5px;

        float: left;

        border: 1px solid #ccc;

    }

    

    .left div {

        background: #bbffaa;

    }

    

    .right div {

        background: yellow;

    }

    </style>

    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>

</head>

<body>

    <h4>.focusin与blur</h4>

    <div class="left">

        <div class="aaron">

            点击触发焦点(无反应):

            <input type="text" />

        </div>

        <div class="aaron1">

            点击触发焦点并冒泡:

            <input type="text" />

        </div>

    </div>

    <script type="text/javascript">

    $(".aaron").focusin(function() {

        $(this).css('border','1px solid red');

    })

    $(".aaron1").focusin(function() {

        $(this).find('input').val('冒泡捕获了focusin事件')

    })

    </script>

    </script>

    <h4>.focusout与blur</h4>

    <div class="right">

        <div class="aaron3">

            点击触发失去焦点(无反应):

            <input type="text" />

        </div>

        <div class="aaron4">

            点击触发失去焦点并冒泡:

            <input type="text" />

        </div>

    </div>

    <script type="text/javascript">

    $(".aaron3").focusout(function() {

        $(this).css('border', '2px solid red')

    })

    $(".aaron4").focusout(function() {

        $(this).find('input').val('冒泡捕获了focusout事件')

    })

    </script>

</body>

</html>

这样处理就可以看到红框了

0 回复 有任何疑惑可以回复我~

关键在于  “处理”两个字
focus与blur、focusin与focusout都能接受到冒泡
但是 focus与blur对冒泡不会处理,focusin与focusout会对冒泡事件处理
区别就在于“处不处理”冒泡事件

3 回复 有任何疑惑可以回复我~

你可以吧aaron改成input自己看看效果!!

0 回复 有任何疑惑可以回复我~
#1

Albert小白

去掉.啊 别忘了
2016-11-04 回复 有任何疑惑可以回复我~

就算在 .left里产生了 focuin() 跟他自己有什么关系呢 这个 css样式为什么没有实现

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这节看不懂啊 。。。为什么 $(".aaron").focus(function() { $(this).css('border', '2px solid red') })这个没有效果呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信