7

我正在阅读 Bootstraps JavaScript 并注意到以下代码:

$(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
    //do something
});

有人可以向我解释为什么会这样"click.modal.data-api"。事件后的点有什么作用?也许我是盲人,但我似乎找不到任何关于此的文档。

4

3 回答 3

4

这是一个命名空间事件,文档[docs]很好地描述了它:

事件名称可由事件命名空间限定,以简化移除或触发事件。例如,"click.myPlugin.simple"为这个特定的点击事件定义 myPlugin 和 simple 命名空间。可以删除通过该字符串附加的单击事件处理程序,.off("click.myPlugin")无论.off("click.simple")是否干扰附加到元素的其他单击处理程序。命名空间类似于 CSS 类,因为它们不是分层的;只有一个名字需要匹配。以下划线开头的命名空间保留给 jQuery 使用。

于 2013-06-13T19:47:36.283 回答
0

它只是一个事件命名空间。看看http://api.jquery.com/event.namespace/

于 2013-06-13T19:49:43.487 回答
0

我对此并不完全确定,但我认为这是一种“个人事件触发”。我解释得更好:您可以定义自己的事件侦听器并随时触发它们。例如,您可以定义一个事件myEvent并通过执行来触发它.trigger('myEvent')。这是一个小片段:

$(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
    //do something
});

这是事件处理程序的声明,您可以通过这样做来触发它:

$(document).trigger('click.modal.data-api');

阅读更多关于.trigger(),.bind().on()

于 2013-06-13T19:50:01.797 回答