bootstrap插件的写法疑问。
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.alert')
if (!data) $this.data('bs.alert', (data = new Alert(this)))
if (typeof option == 'string') data[option].call($this)
})
}
以上代码是bootstrap的alert插件的写法,我的疑问是为什么要each循环执行呢?jquery方法里不是默认就循环的执行事件吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
$.fn.alert = Plugin
这个是jQuery插件的一个写法,如果你使用选择器后这里的this指向的是你选择的元素集,比如$('.xxx'),这样可能会有很多歌匹配的元素,上面的就会遍历你选择的这些元素,一起种一个为例:
这里是什么意思呢?
1.看你有没有在当前这个元素“alert”过,有的话直接执行你对应传过来的option方法(data[option].call($this)),参数就是$this;
2.没有“alert”过就在当前元素上做一个alert, data = new Alert(this),就是个单例,之后再执行;
你进入了一个误区,这里的each循环的不是事件