为什么点击btn1弹出了三次,第二次和第三次都什么原因

来源:3-3 jQuery表单事件之select事件

iceminit

2016-08-31 10:57

 <div class="left">

        <h4>测试一</h4>

        <div class="aaron">

            选中文字:input

            <input type="text" value="慕课网" />

        </div>

        <button id="bt1">触发input元素的select事件</button>

        

        <h4>测试二</h4>

        <div class="aaron">

            textarea:

            <textarea rows="3" cols="20">用鼠标选中文字</textarea>

        </div>

    </div>

 

    <script type="text/javascript">


    //监听input元素中value的选中

    //触发元素的select事件

    $("input").select(function(e){

        alert(e.target.textContent)

    })

    $("#bt1").click(function(){

        $("input").select();

    })


写回答 关注

4回答

  • 慕粉wz
    2016-11-24 11:42:54

    1,$("input").triggerHandler('select'); 用这个你会发现只有一次。

    2,上面就说明后2次是浏览器的默认行为。jquery内部可能调用了这个方法

    $("input")[0].select() ,原生js的select方法,你可以去测试一下,这个方法会调用

    2次绑定的函数,这就是3次的原因。

    备注:只有鼠标去选择才会只执行一次。用原生js代码的select去选中是二次,用jquery的select就是三次了。

    UltraN...

    执行$("input").select(); 这一行确实会调用两次,而且改成 $("input").select(function(e){ alert(e.target.value); return false; }) 就只有一次了,不知道这里的return false;为什么可以减少一次调用?

    2016-12-04 21:57:43

    共 1 条回复 >

  • 预言家0
    2016-09-16 10:07:48

    第一次是button的,第二次是

     $("input").select(function(e){

            alert(e.target.value)

        })这个的回调,

    第三次是浏览器默认提交的

    处理方法,阻止回调(return false;)

    兄台这样可以么,如果你有什么见解可以留言给我。

    暮女神

    谢谢谢谢额

    2017-06-02 13:49:34

    共 1 条回复 >

  • 慕粉3876233
    2016-09-01 09:30:43

    你的select事件的触发元素是节点<input>的,与弹出对话框的按钮无关

  • 慕粉3876233
    2016-08-31 16:12:06

    你是单击了弹出框的确定按钮吧。

    icemin...

    是的呢

    2016-08-31 16:17:50

    共 1 条回复 >

jQuery基础(三)—事件篇

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

89997 学习 · 625 问题

查看课程

相似问题