jquery教程-trigger()和triggerHandler()的区别
“triggerHandler()”具有类似于trigger()的功能!“triggerHandler()”的描述方法与trigger()几乎相同,但它的特点是不执行标准的浏览器事件行为。
要了解此功能我们来看一下以下简单示例:
<body> <input type="checkbox"> <input type="checkbox"> <button>按钮</button> <script> $('input').click(function() { console.log('点击功能'); }) $('button').click(function() { $('input').trigger('click'); }) </script> </body>
在此示例中,排列了两个复选框和按钮元素。当您单击复选框时,您已将事件处理设置为将“单击”输出到控制台日志。
当点击按钮元素时,会执行“trigger('click')”,所以执行checkbox的事件处理。单击按钮,它将如下所示!
trigger() 被执行,控制台日志的输出被检查两次,并且复选框被选中。
<body> <input type="checkbox"> <input type="checkbox"> <button>按钮</button> <script> $('input').click(function() { console.log('点击功能'); }) $('button').click(function() { $('input').triggerHandler('click'); }) </script> </body>
在此示例中,我只是将 trigger() 更改为 triggerHandler()。单击按钮,它将如下所示!
有两点与上一点不同。首先是复选框未选中!这意味着不执行标准浏览器事件行为。由于不执行表单提交处理,因此只执行简单的事件处理。
其次日志只打印一次!也就是说,“triggerHandler()”具有在处理第一个匹配事件时结束的特性。
可以看到,“trigger()与triggerHandler()”在细节上有着非常不同的特性!
当改变不起作用时该怎么办
经常会出现在jQuery事件处理中使用“change()”时效果不佳的现象。例如,让我们看一下在输入框中输入内容时执行“change()”事件的情况!
<body> <input type="Text"> <button>按钮</button> <script> $('button').click(function() { $('input').val('示例'); }) $('input').change(function() { console.log('已经输入'); }) </script> </body>
在这个例子中,已经放置了一个输入框和按钮元素。当点击按钮时,字符串“示例”显示在输入框中。因此当使用“change()”输入某些内容时,它被设置为将字符串“input”输出到控制台日志。
但实际上没有任何内容打印到控制台日志中。因为change()不会对通过val()的输入做出反应!但是可以使用 trigger() 轻松解决此问题。请参阅下面的示例!
<body> <input type="Text"> <button>按钮</button> <script> $('button').click(function() { $('input').val('示例').trigger('change'); }) $('input').change(function() { console.log('已输入'); }) </script> </body>
需要注意的是点击按钮时事件处理的内容!描述已更改为“val('示例').trigger('change')”,其中之前使用了“val()”。
换句话说,在使用 val() 输入字符串后,trigger() 会故意执行 change() 事件!
通过这种方式编写,可以强制不响应 val() 的事件响应。
本文来源:词雅网
本文地址:https://www.ciyawang.com/jquery-82.html
本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。
相关推荐
-
jQuery淡入:提高网站用户体验的利器
在现代Web设计中,用户体验是至关重要的一环。一个好的用户体验能够吸引许多用户,使他们留在你的网站上,而一个糟糕的用户体验则可能导致用户迅速离开你的网站。在这个背景下,jQuery淡入成为了提高网站用...
-
【jQuery入门】总结如何用replace()替换字符串
replace()方法是什么? 下面就从replace方法的基础知识开始学习吧!replace方法是一种允许您用任何字符替换字符串的方法。 它对一般的字...
-
获取jquery文本表单的输入事件
编写一个示例代码,在jquery的“on”方法中使用“touchmove”获取文本表单的输入事件。获取文本表单的输入事件要获取文本表单的输入事件,请在“on”方法中指定“input”。$('指...
-
详解如何在jQuery选择器中使用正则表达式和属性过滤器
这一次,我们来学习使用正则表达式和属性过滤器来指定 jQuery 选择器的方法!比正则表达式更简单的属性过滤器是什么?让我们从学习属性过滤器开始,它比正则表达式更容易指定选择器!首先,jQuery 选...
-
使用jQuery在指定的html标签中插入html代码
编写一个示例代码,使用jquery的wrapInner()方法在指定的html标签插入插入html代码。在指定的html标签中插入html代码wrapInner()方法可以在指定的html标签插入插入...
-
详解如何使用jQuery的submit()方法提交表单
这次,我们来学习一下“submit()”方法,它可以让你从jQuery中操作Form元素的提交!什么是submit()那么我们先从“submit()”方法的基础知识说起吧!“submit()”是一种允...
-
详解jQuery使用contents()方法获取指定元素的子元素和文本节点
这一次,让我们通过一个示例来了解如何使用 jQuery 的“contents()”方法。 如果只是简单的“选择子元素”,可以在children()方法中使用,但在选择“不...
-
详解jQuery使用.show()/.fadeIn()淡入指定元素
这一次,让我们通过一个示例来解释如何使用jQuery的“.show( )/.fadeIn()”。.show()/.fadeIn() 的作用是什么?.show()/.fadeIn()可以“淡入显示dis...
-
详解jQuery使用fadeTo()方法改变指定元素的透明度
这一次,让我们通过一个示例来解释如何使用 jQuery 的“.fadeTo()”。fadeTo()方法 的功能是什么?fadeTo() 方法是逐渐改变被选元素的不透明度为指定的值(褪色效果)。但是,这...
-
详解如何使用jQuery的html()方法进行添加、获取和重写HTML
这一次,让我们来了解一下“html()”方法,它可以让您使用 jQuery 获取、添加和重写 HTML 元素!什么是html()方法让我们从学习“html()”方法的基础开始吧!通过使用“html()...