bootstrap源码中data()函数参数是什么意思?

发布于 2022-09-06 05:45:09 字数 699 浏览 25 评论 0

最近在看bt的源码,发现里面很多都加了命名空间,data函数我不是很理解,如下代码(modal.js)

function Plugin(option, _relatedTarget) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.modal')
      console.log($this.data())
      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
      if (typeof option == 'string') data[option](_relatedTarget)
      else if (options.show) data.show(_relatedTarget)
    })
  }

$this.data('bs.modal')的值一开始是为空的,后面$this.data('bs.modal', (data = new Modal(this, options)))给它赋值,赋给谁了?我看页面上也没这个值啊

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦回旧景 2022-09-13 05:45:10

$this.data()这个本身是 jQuery 一个缓存数据的方法,可以把数据附加到 dom 上。

第一次调用 modal,初始化时,传入的 option 是配置,没有 modal 实例,所以 new 了一个放进$this.data('bs.modal'),这里面保存的就是这个 modal 实例。

之后再调用 modal,传入的 option 就是方法名了,就直接从$this.data('bs.modal')取出实例,然后data[option]调用方法。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文