理解modal.js中未定义的方法

时间:2015-02-24 16:36:53

标签: javascript jquery

嘿伙计们我正在浏览modal.js插件,我遇到以下代码行的问题:

var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth

上述行可在git too.

上找到

offsetWidth和clientWidth来自哪里,它们似乎不会在任何地方声明 插件,我也检查了MDN文档,它们似乎不是任何方法的名称 或函数,那么究竟什么是offsetWidth和clientWidth ??

同样为什么这是附加到body元素并从body中删除元素     标签是不同的语法?

this.$body[0].removeChild(scrollDiv);

什么是[0]?不能成为syntex,只需:

this.$body.removeChild(scrollDiv);

如果我在console.log这个。$ body,我得到

{ 0: <body.modal-open>, context: <body.modal-open>, length: 1 }

但如果我在console.log这个。$ body [0],我得到:

<body class="modal-open">. 

如果有人能给我一个简短的解释,我真的很感激。

谢谢。

亚历山大。

1 个答案:

答案 0 :(得分:1)

回答有关 offsetWidth clientWidth

的问题
  

HTMLElement.offsetWidth只读属性返回元素的布局宽度。通常,元素的offsetWidth是一个度量,它包括元素边框,元素水平填充,元素垂直滚动条(如果存在,如果呈现)和元素CSS宽度。

您可以在mdn中阅读。{/ p>

回答关于$ body的问题。

$ body是一个jQuery实例对象,因此它拥有自己的属性和方法接口。它包含html本机元素,当我说本机我的意思是dom节点。 $ body - jquery元素, $ body [0] - html元素。

关于jquery对象的好解释:

  

jQuery对象是一个包含DOM元素的类数组对象。   jQuery对象可以包含多个DOM元素,具体取决于   你使用的选择器。

此信息取自this question