需要帮助理解这段代码

时间:2011-06-01 20:07:17

标签: javascript jquery

本书jQuery in action第131页

中的代码

我不明白

.trigger( 'adjustName');

什么是adjustName

和trigger()的简单解释

谢谢:)

$('#addFilterButton').click( function() {
    var filterItem = $('<div>')
    .addClass('filterItem')
    .appendTo('#filterPane')
    .data('suffix','.' + (filterCount++));
    $('div.template.filterChooser')
    .children().clone().appendTo(filterItem)
    .trigger('adjustName');
});

3 个答案:

答案 0 :(得分:3)

这是一个字符串,即您定义的自定义事件的名称。

E.g。它会触发绑定的事件处理程序:

el.bind('adjustName', function(){...});

有关详细信息,我建议您查看documentation

  

当相应的事件发生时,会触发附加.bind()或其快捷方法之一的任何事件处理程序。但是,可以使用.trigger()方法手动触发它们。对.trigger()的调用会按照用户自然触发事件的顺序执行处理程序。


在不知道代码的上下文的情况下,我会说在这里调用.trigger()没有任何效果,因为它在clone ed元素上调用,而事件处理程序仅在{{1传递给true

答案 1 :(得分:1)

原作jQuery manual可能有用吗?

  

描述:执行所有处理程序和   附加到匹配的行为   给定事件类型的元素。

答案 2 :(得分:1)

它允许您触发或运行事件。例如,如果您希望代码模仿按钮的单击,则可以编写....

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

然后就会像你自己点击按钮一样运行。

'adjustName'是一个自定义事件。因此触发器功能正在运行该自定义事件。使用jQuery绑定函数分配自定义事件。

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

为清晰起见,您可以创建客户事件。也许您的应用程序会打开一个文档,因此您可能希望将一个名为“openDocument”和“closeDocument”的事件分配给包含该文档的元素。