需要帮助理解这个代码

问题描述:

这段代码在本书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事件处理程序只克隆。

也许原来的jQuery manual会有帮助吗?

描述:执行连接到匹配 元件对于给定事件类型的所有处理和 行为。

它允许您触发或运行一个事件。例如,如果你想要的代码来模仿按钮的点击,你可以写....

$("#myButton").trigger('click'); 

这会再运行完全一样,如果你点击了自己的按钮。

'adjustName'是一个自定义事件。所以触发器函数正在运行该自定义事件。自定义事件是使用jQuery绑定函数分配的。

$("#someElement").bind('adjustName', function() {/* Some Code */}); 

为清晰起见,您可能会创建一个客户事件。也许你的应用程序打开一个文档,所以你可能需要一个名为'openDocument'和'closeDocument'的事件分配给包含该文档的元素。