trigger 和 triggerHandler(),自定义事件

  1 trigger 和 triggerHandler(),自定义事件
  2 语法:
  3 $(selector).trigger(event,[param1,param2,...])
  4     1,event  必需。规定指定元素要触发的事件。
  5     2,[param1,param2,...]  可选。传递到事件处理程序的额外参数。
  6
  7 额外的参数对自定义事件特别有用。
  8 可以使自定义事件(使用 bind() 函数来附加),或者任何标准事件。
  9 ========================
 10 triggerHandler() 方法触发被选元素上指定的事件。
 11
 12 该方法的返回的是事件处理函数的返回值,而不是具有可链性的 jQuery 对象。此外,如果没有处理程序被触发,则这个方法返回 undefined。
 13
 14 该方法与 trigger() 方法类似,不同的是 trigger() 也触发事件的默认行为(比如表单提交)。
 15
 16 triggerHandler() 与 trigger() 方法相比的不同之处:
 17     1,它不会引起事件(比如表单提交)的默认行为,
 18     2,.trigger() 会操作 jQuery 对象匹配的所有元素,而 .triggerHandler() 只影响第一个匹配元素。
 19     3,由 .triggerHandler() 创建的事件不会在 DOM 树中冒泡;如果目标元素不直接处理它们,则不会发生任何事情。
 20 ========================
 21 <html>
 22 <head>
 23     <!-- 这里必须引入jQuery.js否则无法正常运行 -->
 24 <script type="text/javascript" src="js/jquery.js"></script>
 25 <script type="text/javascript">
 26     $(document).ready(function(){
 27       $("input").select(function(){
 28         $("input").after("文本被选中!");
 29       });
 30       $("button").click(function(){
 31         $("input").trigger("select");
 32       });
 33     });
 34 </script>
 35 </head>
 36 <body>
 37 <input type="text" name="FirstName" value="Hello World" />
 38 <br />
 39 <button>激活 input 域的 select 事件</button>
 40 </body>
 41 </html>
 42 =================
 43 <html>
 44 <head>
 45     <!-- 这里必须引入jQuery.js否则无法正常运行 -->
 46 <script type="text/javascript" src="/jquery/jquery.js"></script>
 47 <script type="text/javascript">
 48 $(document).ready(function(){
 49   $("input").select(function(){
 50     $("input").after("文本被选中!");
 51   });
 52   var e = jQuery.Event("select");
 53   $("button").click(function(){
 54     $("input").trigger(e);
 55   });
 56 });
 57 </script>
 58 </head>
 59 <body>
 60 <input type="text" name="FirstName" value="Hello World" />
 61 <br />
 62 <button>激活 input 域的 select 事件</button>
 63 </body>
 64 </html>
 65 ==================
 66 <!DOCTYPE html>
 67 <html lang="en">
 68 <head>
 69     <meta charset="UTF-8">
 70     <title>Document</title>
 71 </head>
 72 <body>
 73     <h2>自定义事件trigger</h2>
 74         <div class="left">
 75             <div><span></span><span>0</span>点击次数</div>
 76             <button>直接点击</button>
 77             <button>通过自定义点击</button>
 78         </div>
 79         <!-- 这里必须引入jQuery.js否则无法正常运行 -->
 80         <script src="js/jquery.js"></script>
 81         <script type="text/javascript">
 82
 83         //点击更新次数
 84         $("button:first").click(function(event,bottonName) {
 85             bottonName = bottonName || ‘first‘;
 86             update($("span:first"),$("span:last"),bottonName);
 87         });
 88
 89         //通过自定义事件调用,更新次数
 90         $("button:last").click(function() {
 91             $("button:first").trigger(‘click‘,‘last‘);
 92         });
 93
 94         function update(first,last,bottonName) {
 95             first.text(bottonName);
 96             var n = parseInt(last.text(), 10);
 97             last.text(n + 1);
 98         }
 99         </script>
100 </body>
101 </html>
102 ================
103 <!DOCTYPE html>
104 <html lang="en">
105 <head>
106     <meta charset="UTF-8">
107     <title>Document</title>
108 </head>
109 <body>
110     <h2>自定义事件triggerHandler</h2>
111     <div class="left">
112         <div id="accident">
113             <a>triggerHandler事件</a>
114             <input type="text">
115         </div>
116         <button>事件冒泡,触发浏览器默认聚焦行为</button><br><br>
117         <button>不会冒泡,不触发浏览器默认聚焦行为</button>
118     </div>
119     <!-- 这里必须引入jQuery.js否则无法正常运行 -->
120     <script src="js/jquery.js"></script>
121     <script type="text/javascript">
122
123         //给input绑定一个聚焦事件
124         $("input").on("focus",function(event,title) {
125             $(this).val(title)
126         });
127
128         $("#accident").on("click",function() {
129             alert("trigger触发的事件会在 DOM 树中向上冒泡");
130         });
131         //trigger触发focus
132         $("button:first").click(function() {
133             $("a").trigger("click");
134             $("input").trigger("focus");
135         });
136
137         //triggerHandler触发focus
138         $("button:last").click(function() {
139             $("a").triggerHandler("click");
140             $("input").triggerHandler("focus","没有触发默认聚焦事件");
141         });
142     </script>
143 </body>
144 </html>
145 ==========以下是triggerHandler()方法============
146 <!DOCTYPE html>
147 <html>
148 <head>
149 <meta charset="utf-8">
150 <title>菜鸟教程(runoob.com)</title>
151 <!-- 这里必须引入jQuery.js否则无法正常运行 -->
152 <script src="js/jquery.js"></script>
153 <script>
154 $(document).ready(function(){
155   $("input").select(function(){
156     $("input").after("select 事件触发!");
157   });
158   $("button").click(function(){
159     $("input").triggerHandler("select");
160   });
161 });
162 </script>
163 </head>
164 <body>
165
166 <input type="text" value="Hello World">
167 <br><br>
168 <button>触发输入框的 select 事件</button>
169 <p>该方法与 trigger() 方法类似,不同的是 trigger() 也触发事件的默认行为(比如表单提交)。</p>
170
171 </body>
172 </html>

trigger 和 triggerHandler(),自定义事件语法:$(selector).trigger(event,[param1,param2,...])    1,event  必需。规定指定元素要触发的事件。    2,[param1,param2,...]  可选。传递到事件处理程序的额外参数。
额外的参数对自定义事件特别有用。可以使自定义事件(使用 bind() 函数来附加),或者任何标准事件。========================triggerHandler() 方法触发被选元素上指定的事件。
该方法的返回的是事件处理函数的返回值,而不是具有可链性的 jQuery 对象。此外,如果没有处理程序被触发,则这个方法返回 undefined。
该方法与 trigger() 方法类似,不同的是 trigger() 也触发事件的默认行为(比如表单提交)。
triggerHandler() 与 trigger() 方法相比的不同之处:    1,它不会引起事件(比如表单提交)的默认行为,    2,.trigger() 会操作 jQuery 对象匹配的所有元素,而 .triggerHandler() 只影响第一个匹配元素。    3,由 .triggerHandler() 创建的事件不会在 DOM 树中冒泡;如果目标元素不直接处理它们,则不会发生任何事情。========================<html><head>    <!-- 这里必须引入jQuery.js否则无法正常运行 --><script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript">    $(document).ready(function(){      $("input").select(function(){        $("input").after("文本被选中!");      });      $("button").click(function(){        $("input").trigger("select");      });    });</script></head><body><input type="text" name="FirstName" value="Hello World" /><br /><button>激活 input 域的 select 事件</button></body></html>=================<html><head>    <!-- 这里必须引入jQuery.js否则无法正常运行 --><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">$(document).ready(function(){  $("input").select(function(){    $("input").after("文本被选中!");  });  var e = jQuery.Event("select");  $("button").click(function(){    $("input").trigger(e);  });});</script></head><body><input type="text" name="FirstName" value="Hello World" /><br /><button>激活 input 域的 select 事件</button></body></html>==================<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title></head><body>    <h2>自定义事件trigger</h2>        <div class="left">            <div><span></span><span>0</span>点击次数</div>            <button>直接点击</button>            <button>通过自定义点击</button>        </div>        <!-- 这里必须引入jQuery.js否则无法正常运行 -->        <script src="js/jquery.js"></script>        <script type="text/javascript">
        //点击更新次数        $("button:first").click(function(event,bottonName) {            bottonName = bottonName || ‘first‘;            update($("span:first"),$("span:last"),bottonName);        });
        //通过自定义事件调用,更新次数        $("button:last").click(function() {            $("button:first").trigger(‘click‘,‘last‘);        });
        function update(first,last,bottonName) {            first.text(bottonName);            var n = parseInt(last.text(), 10);            last.text(n + 1);        }        </script></body></html>================<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title></head><body>    <h2>自定义事件triggerHandler</h2>    <div class="left">        <div id="accident">            <a>triggerHandler事件</a>            <input type="text">        </div>        <button>事件冒泡,触发浏览器默认聚焦行为</button><br><br>        <button>不会冒泡,不触发浏览器默认聚焦行为</button>    </div>    <!-- 这里必须引入jQuery.js否则无法正常运行 -->    <script src="js/jquery.js"></script>    <script type="text/javascript">
        //给input绑定一个聚焦事件        $("input").on("focus",function(event,title) {            $(this).val(title)        });
        $("#accident").on("click",function() {            alert("trigger触发的事件会在 DOM 树中向上冒泡");        });        //trigger触发focus        $("button:first").click(function() {            $("a").trigger("click");            $("input").trigger("focus");        });
        //triggerHandler触发focus        $("button:last").click(function() {            $("a").triggerHandler("click");            $("input").triggerHandler("focus","没有触发默认聚焦事件");        });    </script></body></html>==========以下是triggerHandler()方法============<!DOCTYPE html><html><head><meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <!-- 这里必须引入jQuery.js否则无法正常运行 --><script src="js/jquery.js"></script><script>$(document).ready(function(){  $("input").select(function(){    $("input").after("select 事件触发!");  });  $("button").click(function(){    $("input").triggerHandler("select");  });});</script></head><body>
<input type="text" value="Hello World"><br><br><button>触发输入框的 select 事件</button><p>该方法与 trigger() 方法类似,不同的是 trigger() 也触发事件的默认行为(比如表单提交)。</p>
</body></html>

原文地址:https://www.cnblogs.com/Knowledge-is-infinite/p/11333961.html

时间: 2024-11-05 18:31:36

trigger 和 triggerHandler(),自定义事件的相关文章

jquery的自定义事件通过on绑定trigger触发

jquery绑定自定义事件,可以实现预先绑定好一个处理方法,当需要使用的时候利用jquery trigger来触发自定义事件,以达到方便快捷的目的.我们来假设一个这样的场景,一个textarea中的字数计算,如果是直接键盘输入或者粘贴进来的话,是可以使用input方法检测到,但是如果是通过js插入的文本,这个时候input事件就监测不到了,这个时候如果我们事先给绑定一个myChange事件,它的回调函数就是来处理计算其中的文本字数的,我们在使用js给这个textarea赋值以后,连缀写上.tri

自定义事件.trigger()和.triggerHandler()

1   .trigger()根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为,除了能够触发浏览器事件,同时还支持自定义事件,并且自定义时间还支持传递参数 2   trigger触发浏览器事件与自定义事件区别     自定义事件对象,是jQuery模拟原生实现的   自定义事件可以传递参数 3   alert的执行必须要有用户点击才可以 4   triggerHandler与trigger的用法是一样的,区别是   triggerHandler不会触发浏览器的默认行为,.triggerH

JQuery手动触发事件API之:通过代码看清trigger与triggerHandler的差别

本文只讨论JQuery如何手动触发DOM上绑定的事件处理函数,至于如何给DOM绑定事件处理函数,可以参考这篇文章.测试环境是IE11/FF17/Chrome39,JQuery版本是1.11.1和2.1.1都测试过. 下面这段js代码给button绑定了click事件处理函数,第一种是我们最常用的做法:第二种使用了自定义参数. // 绑定事件的时候不自定义参数 $("#button").bind("click",function(event){ alert("

219 jQuery事件处理: off() 解绑事件,trigger() 、triggerHandler() 自动触发事件

? 当某个事件上面的逻辑,在特定需求下不需要的时候,可以把该事件上的逻辑移除,这个过程我们称为事件解绑.jQuery 为我们提供 了多种事件解绑方法:die() / undelegate() / off() 等,甚至还有只触发一次的事件绑定方法 one(),在这里我们重点讲解一下 off() ; 语法 演示代码 <body> <div></div> <ul> <li>我们都是好孩子</li> <li>我们都是好孩子<

jquery中的trigger和triggerHandler区别

我们在jQuery基础教程之如何注册以及触发自定义事件这篇文章中,有用到今天要讲的trigger方法.今天我们来简单看看jquery中的trigger何triggerHandler方法的区别:trigger( event, [data] )在每一个匹配的元素上触发某类事件.这个函数也会导致浏览器同名的默认行为的执行.比如,如果用trigger()触发一个'submit',则同样会导致浏览器提交表单.如果要阻止这种默认行为,应返回false.你也可以触发由bind()注册的自定义事件 $("p&q

javascript和jquey的自定义事件小结

“通过事件机制,可以将类设计为独立的模块,通过事件对外通信,提高了程序的开发效率.” 可以把多个关联但逻辑复杂的操作利用自定义事件的机制灵活地控制好 对象之间通过直接方法调用来交互 1)对象A直接调用对象B的某个方法,实现交互:直接方法调用本质上也是属于一种特殊的发送与接受消息,它把发送消息和接收消息合并为一个动作完成: 方法调用方和被调用方被紧密耦合在一起:因为发送消息和接收消息是在一个动作内完成,所以无法做到消息的异步发送和接收: 2)对象A生成消息->将消息通知给一个事件消息处理器(Obs

jQuery基础(鼠标事件,表单事件,键盘事件,自定义事件 篇)

1.jQuery鼠标事件之click与dbclick事件 方法一:$ele.click()(不带参数) <div id="test">点击触发<div> $("ele").click(function(){ alert('触发指定事件') }) $("#test").click(function(){ $("ele").click() //手动指定触发事件 });   方法二:$ele.click( h

自定义事件 (jQuery)

1jQuery自定义事件之trigger事件 众所周知类似于mousedown.click.keydown等等这类型的事件都是浏览器提供的,通俗叫原生事件,这类型的事件是需要有交互行为才能被触发. 在jQuery通过on方法绑定一个原生事件 $('#elem').on('click', function() { alert("触发系统事件") }); alert需要执行的条件:必须有用户点击才可以.如果不同用户交互是否能在某一时刻自动触发该事件呢? 正常来说是不可以的,但是jQuery

使用jQuery中trigger()方法自动触发事件

一.常用事件 在页面加载完成时  自动触发input的点击事件,在移动端可以实现自动弹出输入法,获得焦点 $("input").trigger("click").focus(); 还有一种简写方式: $("input").click(); 还有其它事件就不一一列出了. 二.自定义事件 $("#btn").on("myClick",function(){ alert("自定义事件"); }