- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试以下代码:
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("span").click(function(){
alert($(this).offsetParent().length);
});
});
</script>
</head>
<body>
<p>If you click on me, I will disappear.</p>
<p><span>Click me away!</span></p>
<p>Click me too!</p>
</body>
</html>
根据 jQuery 文档,offsetParent()
应该返回位置最近的父级,positioned 表示 position
明确定义为 ' static,
absoluteor
relative`。在这里,没有为任何元素声明任何元素,但弹出警报 1。怎么会这样?
最佳答案
首先让我们看一下返回结果:
[html, prevObject: jQuery.fn.jQuery.init[1], context: span, jquery: "1.9.0", constructor: function, init: function…]
因此,对于 $(span).offsetParent()
,您将获得 HTML
元素。
现在让我们看一下offsetParent
的实现:
offsetParent: function() {
return this.map(function() {
var offsetParent = this.offsetParent || document.documentElement;
while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position") === "static" ) ) {
offsetParent = offsetParent.offsetParent;
}
return offsetParent || document.documentElement;
});
}
从上面的代码我们可以看出,如果我们没有定位父元素,offsetParent
将返回 HTML
元素。
唯一不好的是,当我查看不存在的文档时。
要检查是否确实有一个 offsetParent
,您可以使用:
document.getElementsByTagName('html')[0] === $(elem).offsetParent()[0]
关于javascript - jQuery offsetparent 也返回非定位父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14453979/
jQuery 手册第 141 页指出,jQuery 的 offsetParent 方法提供了标准 JavaScript offsetParent DOM 节点属性的替代方法。 问:如何使用 JavaS
RDC70 是 RP70 的偏移父级。然而,在代码中的某一点,情况并非如此。以下返回 null: console.log($('#RP70').get(0).offsetParent); [注:这是根
对于 chrome 和 ff,当涉及到可怕的 ie 时,这个脚本工作完美。有问题 function getY(oElement) { var curtop = 0; if (oElem
我已经搜索了一下这个。有没有办法只获取父元素位于 relative 位置的元素的 offsetParent() ?我不想要其他所有职位的 parent 。只是具有相对位置的 parent 。 我在想类
有没有一种方便的方法来检查 HTMLElement 是 offsetParent? 我有一种情况,我需要确定一个元素的 offsetParent before 它被插入到 DOM 中。在插入之前,我可
我面临以下情况: 有mousemove驻留在此层次结构中的表的单元格上注册的事件 BODY -> Something1 -> Something2 -> Something3 -> Table ->
我正在尝试以下代码: $(document).ready(function(){ $("span").click(function(){ alert($(this).offse
我做错了什么吗?看起来这只适用于 IE,尽管我看不到我期望其他人无法处理的内容。 onetwothreefourfivesixseveneightnineten I should come into
我使用 Jquery“draggable”和“droppable”将元素从一个 div 移动到另一个。 当我将元素放入“可放置”中时,我想存储新位置。 我可以这样做:$('draggedElement
我想获取 Canvas 的 X 和 Y 坐标,为此我使用 this question 中建议的解决方案。 。为了方便引用,这是我正在使用的函数(包括一些调试警报消息): function getCum
我正在尝试用 JavaScript 进行定位。我正在使用基于 classic quirksmode function 的累积头寸函数将每个 offsetParent 的 offsetTop 和 off
我正在看 Pro JS 技术书中的这段 javasript。 他试图找到一个元素的 offsetLeft。但是在firefox中,offsetParent不就是根元素体吗? 我不确定它会如何递归。 /
$(document).ready(function(){ $("button").click(function(){ $("p").offsetParent().css("b
我有一些具有以下大致结构和定位的 HTML: 在我的 jQuery 小部件中,我试图插入一个元素,该元素位于小部件所针对的元素的“偏移父元素”内。为此,我基本上有这样的代码:
我正在尝试获取页面上某个元素的坐标。我一直在使用标准方式获取它: var el = element, pos = {x: 0, y: 0}; while ( el ) { pos.x += e
我用具有相同 parentNode 的两个元素调用此函数: var test = function(target, div){ alert(div.parentNode == target.
我有以下 DOM 结构 DIV 的溢出设置为自动,因此如果表格变大
以下代码在 Chrome 44 中有效,但在 Firefox 40 中无效: var width = 460, height = 300; var svg = d3.select("body").ap
我正在尝试使用 jquery fileDownload,但它在 firebug 中显示“offsetParent is not set -- cannot scroll”错误。 这是我的代码。很简单。
我正在维护一些使用 .offsetParent 的 javascript属性(property)。最近的更改现在使应用程序使用 SVG 元素,并且它们破坏了 JavaScript,因为 mySvgEl
我是一名优秀的程序员,十分优秀!