zoukankan      html  css  js  c++  java
  • jQuery之事件触发trigger


    这个函数也会导致浏览器同名的默认行为的执行。比如,如果用trigger()触发一个'submit',则同样会导致浏览器提交表单。如果要阻止这种默认行为,应返回false。

    <script type="text/javascript">
    $(function(){
    $('#btn').bind("click", function(){
    $('#test').append("<p>我的绑定函数1</p>");
    }).bind("click", function(){
    $('#test').append("<p>我的绑定函数2</p>");
    }).bind("click", function(){
    $('#test').append("<p>我的绑定函数3</p>");
    });
    $('#btn').trigger("click");
    })
    </script>


    这里面会自动触发一次click事件。也就是页面加载后,就会自动触发一次。

    <script type="text/javascript">
    $(function(){
    $('#btn').bind("myClick", function(){
    $('#test').append("<p>我的自定义事件.</p>");
    });
    $('#btn').click(function(){
    $(this).trigger("myClick");
    }).trigger("myClick");
    })
    </script>


    上面的代码是jQuery中的连写方式。也会在页面加载后自动触发一次myClick事件。$('#btn').click(function(){ $(this).trigger("myClick"); }).trigger("myClick");类似于

    $('#btn').click(function(){ $(this).trigger("myClick"); });$('#btn').trigger("myClick"); 并列的写法。



    trigger()方法还可以传递参数。

    <script type="text/javascript">
    $(function(){
    $('#btn').bind("myClick", function(event, message1, message2){
    $('#test').append( "<p>"+message1 + message2 +"</p>");
    });
    $('#btn').click(function(){
    $(this).trigger("myClick",["我的自定义","事件"]);
    }).trigger("myClick",["我的自定义","事件"]);
    })
    </script>

    在每一个匹配的元素上触发某类事件。还有一个跟trigger差不多的方法,triggerHandler()。

    这个特别的方法将会触发指定的事件类型上所有绑定的处理函数。但不会执行浏览器默认动作,也不会产生事件冒泡。
    这个方法的行为表现与trigger类似,但有以下三个主要区别:
    * 第一,他不会触发浏览器默认事件。
    * 第二,只触发jQuery对象集合中第一个元素的事件处理函数。
    * 第三,这个方法的返回的是事件处理函数的返回值,而不是据有可链性的jQuery对象。此外,如果最开始的jQuery对象集合为空,则这个方法返回 undefined 。



    <script type="text/javascript">
    $(function(){
    $('#old').bind("click", function(){
    $("input").trigger("focus");
    });
    $('#new').bind("click", function(){
    $("input").triggerHandler("focus");
    });
    $("input").focus(function(){
    $("body").append("<p>focus.</p>");
    })
    })
    </script>




    trigger方法还有可能触发input的focus事件。而triggerHandler则不会触发默认事件focus聚焦。


  • 相关阅读:
    [LeetCode] 240
    [LeetCode] 169
    [LeetCode] 28
    [LeetCode] 27
    [LeetCode] 14
    [LeetCode] 9
    [LeetCode] 7
    [LeetCode] 2
    数据库开发规范
    Mysql优化
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/2681836.html
Copyright © 2011-2022 走看看