亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
javascript - input select()方法調(diào)用后發(fā)生了什么
黃舟
黃舟 2017-04-10 15:41:04
[JavaScript討論組]

參考問題 http://segmentfault.com/q/1010000003105089 答案無法解答疑惑~~

手工調(diào)用input的select方法,對(duì)應(yīng)的select事件相應(yīng)函數(shù)被執(zhí)行了多次
使用jquery的trigger方法也是如此
有人能解答下手工調(diào)用select方法發(fā)生了什么么?

<!DOCTYPE html>
<html>
<head>
    <title>Number Entry</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="script/jquery-2.1.3.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
        //方法1
        $("#FirstName").on("select",function() {
            $("input").after("[jquery select 文本被選中]");
        });
        //方法2
        document.getElementById('FirstName').addEventListener("select",function(event){

            //console.log('文本被選中!');
            $("input").after("[native文本被選中!]");
        },false);


        $("button").click(function() {
            //方法1被執(zhí)行了3次 方法2執(zhí)行2次
            $("input").trigger("select");
            //使用原生的方法 方法1被執(zhí)行了2次 方法2執(zhí)行2次
            //document.getElementsByName('FirstName')[0].select();
        });

    });

    </script>
</head>

<body>
    <input type="text" id="FirstName" name="FirstName" value="Hello World kikong" />
    <br />
    <button >激活 input 域的 select 事件</button>
</body>

</html>
黃舟
黃舟

人生最曼妙的風(fēng)景,竟是內(nèi)心的淡定與從容!

全部回復(fù)(2)
伊謝爾倫

大概測(cè)試了一下,挺有意思的,原因不明,大致猜測(cè)是select事件本身的特殊性就會(huì)導(dǎo)致觸發(fā)多次

首先如果把select事件換成click事件,整個(gè)流程完全正常。其次,在input當(dāng)中寫onselect="return false;"會(huì)導(dǎo)致方法2不執(zhí)行、方法1只執(zhí)行一次,同時(shí)文本并沒有被選中,感覺上,整個(gè)select的流程,在最開始先觸發(fā)了方法1,實(shí)際上這個(gè)時(shí)候選中這個(gè)動(dòng)作本身還沒實(shí)現(xiàn),所以可以被return false;阻止,而選中動(dòng)作完成后才會(huì)觸發(fā)方法2,同時(shí)還會(huì)再次觸發(fā)方法1,這其中可能還有時(shí)間點(diǎn)會(huì)再各觸發(fā)2個(gè)方法一次。最后,在方法1中return false;也會(huì)有類似效果,但是在方法2中,無論return false;event.preventDefault();event.stopPropagation();統(tǒng)統(tǒng)都沒有用

PHP中文網(wǎng)

在不同的瀏覽器中確實(shí)顯示次數(shù)不一樣,trigger是把綁定在對(duì)象上的所有事件都執(zhí)行一遍,所以點(diǎn)擊按鈕出發(fā)trigger的時(shí)候顯示次數(shù)多

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)