textarea在blur时,如何判断哪个元素获取了焦点?如何判断按钮是否被点击?

先看代码如下:

    <form>
        <input type="text" class="input_test">
        <textarea class="textarea_test"></textarea>
    </form>
    <button class="btn_save">save</button>

    <script src="Public/js/jquery-2.0.3.min.js"></script>
    <script>
        var bool_btn_clicked=false; //本来想用bool_btn_clicked来标记是否被点击

        $('.textarea_test').blur(function(){
            console.log(document.activeElement.tagName); //为什么获得焦点的总是body???即使点击input,获得焦点的总是body

            $('.btn_save').click(function(){
                bool_btn_clicked=true;
                console.log('btn_save was click');
            });

            console.log('bool_btn_clicked-> '+bool_btn_clicked); //为什么bool_btn_clicked不等于true???
            console.log('textarea_test was blur');

            // ajax_save();
        });
    </script>

我希望能在textarea失焦时,获取用户点击的是什么元素(而导致 textarea失焦)。
重点是判断是不是因为 用户点击了按钮btn_save 而导致textarea失焦。

但不知为什么,document.activeElement.tagName 得到的总是body。
另外,我想用bool_btn_clicked来标记是否被点击,结果bool_btn_clicked不等于true。

阅读 4.1k
2 个回答
 拿去试试吧,看是不你想要的功能呢

 $('body').on('blur','.textarea_test',function(){
                $('html').click(function(){
                     console.log(document.activeElement.tagName);
                })
            })
  

document.getSelection()是用来获取焦点的。失去焦点之后,获取一下焦点在哪里。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题