需要帮助理解这个代码
问题描述:
这段代码在本书jQuery in action第131页需要帮助理解这个代码
我不明白
.trigger( 'adjustName');
究竟是什么触发adjustName
和简单的解释()
谢谢:)
$('#addFilterButton').click(function() {
var filterItem = $('<div>')
.addClass('filterItem')
.appendTo('#filterPane')
.data('suffix','.' + (filterCount++));
$('div.template.filterChooser')
.children().clone().appendTo(filterItem)
.trigger('adjustName');
});
答
这是一个字符串,一个自定义事件您定义的名称。
例如它会触发由绑定的事件处理程序:
el.bind('adjustName', function(){...});
欲了解更多信息,我建议有一个看documentation:
附有
.bind()
或它的快捷方式的方法之一任何事件处理程序被触发时,相应的事件发生。但是,他们可以手动启动,但使用.trigger()
方法。对.trigger()
的调用以与事件由用户自然触发时相同的顺序执行处理程序。
在不知道密码的情况下,我会说,调用.trigger()
这里没有任何影响,因为它是所谓的clone
编辑元素,如果true
传递给clone
事件处理程序只克隆。
答
它允许您触发或运行一个事件。例如,如果你想要的代码来模仿按钮的点击,你可以写....
$("#myButton").trigger('click');
这会再运行完全一样,如果你点击了自己的按钮。
'adjustName'是一个自定义事件。所以触发器函数正在运行该自定义事件。自定义事件是使用jQuery绑定函数分配的。
$("#someElement").bind('adjustName', function() {/* Some Code */});
为清晰起见,您可能会创建一个客户事件。也许你的应用程序打开一个文档,所以你可能需要一个名为'openDocument'和'closeDocument'的事件分配给包含该文档的元素。