为什么要从focus()更改为trigger('focus')
Why change from focus() to trigger('focus')?
我在bootstrap中浏览了dropdown.js的历史,在git上发现了以下更改历史文件:
$this.focus() // focus() being changed to trigger('focus');
$this.trigger('focus')
现在,这里的家伙对这一变化留下了评论:
通过自定义jQuery构建(不包括事件)为人们创造生活别名要容易得多。
我不太明白使用focus()
和trigger('focus')
有什么区别,因为对我来说,两者都有相同的效果;为什么作者选择了这样的改变?
https://github.com/jquery/jquery#modules.
如果您正在进行自定义jQuery构建并排除event/alias
模块,则不会有事件的快捷方式(例如.click()
、.focus()
、.ready()
等)。
所以您必须使用.on('eventName', handler)
进行事件绑定,然后使用.trigger('eventName')
来触发jQuery事件。
拥有自定义jQuery构建的人可以创建或修改他们自己的focus()
函数,以执行他们想要的任何操作。想象一下,如果您创建自己的focus()
,它允许大量参数并链接多个回调;如果将它的用法与jQuery focus()
基本函数结合起来,那将是一团糟。
当你使用触发器时,很明显你会触发一个动作;在这种情况下,聚焦一个元素。
除此之外,使用trigger()
函数使代码更易于理解。
相关文章:
- 为什么 .focus() 不起作用,而 .css(“color”,“red”) 在同一个选择器上起作用
- 为什么要从focus()更改为trigger('focus')
- jQuery.focus()导致页面跳转
- :focus:一起活跃,不在firefox上工作
- Trigger.io Collaboration
- 无法使用 $('input[name=“rate”]').focus() 聚焦文本框;方法
- Jquery.focus未移动到必填字段
- TypeError:undefined不是对象(正在评估'newWindow.focus')
- Focus()在任何导航器中都不起作用
- JQuery is(":focus")
- calling.trigger(“click”),它在ajax调用返回的javascript代码中
- 在javascript createElement上调用.trigger
- 在 iPad 上调试 trigger.io 应用
- 在此代码中需要 .trigger(“更改”)是什么?
- RefluxJS存储可以在调用trigger()时指示哪个属性已更改吗?
- 在iPad上,如何通过Javascript事件在选择元素上设置focus()而不显示选项
- jQuery .trigger() 多个事件
- document.getElementById('myControl').focus() 在 PhoneGap 中不起作
- trigger('create') 在 Chrome 中正确呈现,但在 Android 模拟器中无法正确呈现
- 将 jQuery trigger() 与 hoverIntent 一起使用