Focus事情,引起我的解题思路(Focus事件不起作用,与click,mousedown的事情)

我们要完成一个任务,总是从我们的解题思路开始。

 

解题思路,一般由我们过去的知识与经验决定。

 

曾经看的一本书,是什么书已经忘记了,得回去再查查。

 

可能是深度思维。

 

意思说的就是,企业家对自己的企业管理有问题,去请教一个科学家。

 

但科技家,其它完全不是不了解这一行业。

 

但是,但懂得如何解题,如何去按照一定的思维模式,去处理这些问题,

 

所以,经过几个小时的讨论,终于把企业家的问题理顺,找到答案了。

 


 

回头,再看我的解题思路。

 

第一:我想到了,是找到获取焦点的方法(通过获取焦点,这样光标焦点,就会停留在控件上。)

 

同时,也在一些JS官网,试验了,方法没问题,可正常运作:

document.getElementById('male').focus();

我以为就这样事情结束了。

 

但,我用了获取焦点方法,结果,没有任何反映。

 

接下来,这是我认为最重要的一步。

 

然后:

第一个方法:在原来的代码里,不断作修改。(这样极大可能会越弄越混乱)

 

第二个方法(可偿试):但找到一样的情况,基本上找不到。

 

第三个方法(推荐):自己重新建立干净的,无任何干扰的代码。

 

我基本上,在第一个方法中,花了10分钟。不行。因此,我控制住了,自己的“贪快的欲望”,

 

因为第一个方法,如果成功,就直接成功了(因为直接在原来的代码上做的),但是,我决定还是

 

不在这样乱花时间。

 

第二个方法,我实在想不到怎么百度(因为这问题已经看出来,很少可能受别的影响 )

 

于是,我用了第三个方法,自己重新建立HTML,

 

代码如下:

 

 

<script type="text/javascript">

    $(".search_top").mousedown(

        function() {

            $(".search_bomb_box").show();

            $("#searchIndex").hide();

            $("#wrapper").hide();

            $("#filterTools").hide();

            document.getElementById('searchWordAtBomb').focus();

            document.getElementById('searchWordAtBomb').value = 'ss';

        }

    );

    $(".search_bomb_box .search_topBox>a").mousedown(

        function() {

            $(".search_bomb_box").hide();

            $("#searchIndex").show();

            $("#wrapper").show();

            $("#filterTools").show();

            //$("#searchWordAtBomb").focus();

        }

    );

</script>

 

 

直接把 mousedown事件,改为click即可。

 

于是,我还要检查一下,两个事件的细微区别

 

由于,我做的这个程序,不涉及拖动,因此,暂时无影响。

 

于是,深入学习一下,发现事件顺序是这样:mousedown -> focus -> mouseup -> click->blur

 

<!doctype html>

<html>

<head>

</head>

<body>

<input type="text" id="test" />

<script>

    var input = document.getElementById("test");

    addListener(input, "blur", function() {

        console.log("blur");

    });

    addListener(input, "mousedown", function() {

        console.log("mousedown");

    });

    addListener(input, "mouseup", function() {

        console.log("mouseup");

    });

    addListener(input, "click", function() {

        console.log("click");

    });

    addListener(input, "focus", function() {

        console.log("focus");

    });

   

       

    function addListener(dom, event, func) {

        if(dom.addEventListener) {

            dom.addEventListener(event, func);

        } else if(dom.attachEvent) {

            dom.attachEvent("on"+event, func);

        } else {

            dom["on"+event] = func;

        }

    }

</script>

</body>

</html>

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值