我正在阅读 Bootstraps JavaScript 并注意到以下代码:
$(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
//do something
});
有人可以向我解释为什么会这样"click.modal.data-api"
。事件后的点有什么作用?也许我是盲人,但我似乎找不到任何关于此的文档。
我正在阅读 Bootstraps JavaScript 并注意到以下代码:
$(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
//do something
});
有人可以向我解释为什么会这样"click.modal.data-api"
。事件后的点有什么作用?也许我是盲人,但我似乎找不到任何关于此的文档。
这是一个命名空间事件,文档[docs]很好地描述了它:
事件名称可由事件命名空间限定,以简化移除或触发事件。例如,
"click.myPlugin.simple"
为这个特定的点击事件定义 myPlugin 和 simple 命名空间。可以删除通过该字符串附加的单击事件处理程序,.off("click.myPlugin")
无论.off("click.simple")
是否干扰附加到元素的其他单击处理程序。命名空间类似于 CSS 类,因为它们不是分层的;只有一个名字需要匹配。以下划线开头的命名空间保留给 jQuery 使用。
它只是一个事件命名空间。看看http://api.jquery.com/event.namespace/
我对此并不完全确定,但我认为这是一种“个人事件触发”。我解释得更好:您可以定义自己的事件侦听器并随时触发它们。例如,您可以定义一个事件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()