- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
怎么样,
[here is a small page illustrating my problem ](Firefox 中出现问题)
所以我有一个函数 onmouseout="regress(event, this)"
来测试鼠标是否实际上离开当前元素及其任何子元素。 (more details on why I did this and what is the matter)。如果鼠标确实在外面,我想停止按钮上的动画并重置计时器(我就是这么做的)。并且它有效。
只是事实并非如此。在 Firefox(测试 v5.0)中就是这样。我收到与 DOM 相关的错误。触发该函数的元素的 parentNode
是“”,然后它的父节点将是“未定义”,然后我收到错误并且代码爆炸。
令人费解的部分是:只有当鼠标真正离开按钮区域时才会出现此错误。还有另一种情况,当 onmouseout 事件被触发时(为了避免这种情况,我使用了这个函数)。这是 onmouseout 将按钮的一个子按钮移至按钮的另一个子按钮。在这种情况下,parentNode
工作正常,从buttonChild 到button 到buttonParent 到blabla 到BODY,然后停止。
我的问题是,为什么在一种情况下会出现未定义的错误,而在另一种情况下则不会。请注意,Chrome 或 IE9 中没有错误。另外我该如何解决它?
这让我很困惑。感谢您的帮助。
我很困惑。
这里还有 javascript 函数:
function regress(evt, x){
//if (!e && window.event)
if (window.event)
var e = window.event;
else
var e = evt; //if we got here, you're using Firefox
var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
while (reltg.tagName != 'body')
{
//alert(reltg.id+" == " + x.id);
if (reltg.id == x.id)
{
return;
}
reltg = reltg.parentNode;
//alert(reltg.tagName);
}
// I'm on true mouseout, do stuff here:
$("#"+x.id+"ThickParent").stop(true, false);
$("#"+x.id+"ThickParent").width(0);
canStartAgain=true;
stopInterval = true;
timerValue = 1.50;
$("#"+x.id+"Timer").html("");
//thanks to: http://www.webmasterworld.com/javascript/3752159.htm
}
取消注释 //alert(reltg.id+"== "+ x.id);
以准确查看 onmouseout
何时被触发以及什么元素 reltg. ParentNode
在什么时间开启。
最佳答案
几个月前我也遇到了同样的问题。您会注意到从顶部退出不会发生错误。由于某种原因,“body”标签被缩小以适合内部 div 并延伸到顶部,当移动到底部(或左、右)时,FF 会触发事件,相关目标指向“html”标签并在你的循环的停止条件是标签是“body”标签。 “html”标签的父级是文档,文档的父级是 null
,当您尝试访问 null< 的
。要达到预期结果,您必须将停止条件更改为 tagName
属性时,会抛出错误while (reltg.tagName != 'html')
或什至将错误恢复能力最强的 while (reltg && (reltg.tagName != ' body '))
。
关于javascript - 鼠标悬停时未定义 ParentNode DOM 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6779910/
var topClick = function() { child = this.parentNode.parentNode.parentNode.parentNode; child.pare
在我的代码中,函数 displayUserTable 将一些名为 tUserBlock 的 div 附加到名为 centralWindow 的主 div。当您单击 tUserBlock 时,会从名为
这是一种病态的情况,但假设我有以下 HTML: [...] 我有一个表格的引用,例如 var form = document.getElementById(
我正在使用以下代码片段来更新表中的某些文本框值。 ProjectName Block .WorkProgressMilestone Completion
我有一个创建 HTML 表格的函数: makeHTMLTable: function(array){ var table = document.createElement('table');
我已经开始使用 d3,此时我正在编辑给定的脚本以满足新的要求。我尝试访问变量,但无法访问它。有人可以帮我吗? 问题出在第 5 行,我无法获取“this.parentNode”,但我需要它。 有人能指出
我正在通过为自己设置一些小练习来练习基本的 JS 技能。在这个中,我有一个列表 s 位于 div 内。练习的目的是包装每个 在一个 div 中。我正在使用replaceChild在这种情况下。 奇怪
我的 javascript 程序基本上创建一系列图像并随机选择一个图像并将其 src 设置为特定路径。然而,由于某种原因,代码有时似乎会卡住。在我的程序中,我调用其中一个图像的 element.par
我有以下带有 A 框架的 html 结构。基本上,我使用以下基本 html 构建原子的 3D 表示:\ 为了
如果我们使用 closable: true 关闭 tabPanel,则默认操作将销毁 tabPanel。因此,由于 tabPanel 被破坏,我们将无法再次显示 tabPanel。但是,我不希望 ta
我正在尝试使用 JavaScript 复制 jQuery 的 after(): var orangeBlock = 'Try out the New Version of CLO' var greyB
我有一个问题。如何多次使用 parentNode 属性? 我知道我可以做出这样的东西: document.getElementById("mytag").parentNode.parentNode.r
我正在尝试为我构建一个类似 jquery 的实用程序库,这正是我主要使用 jQuery 的东西。 我有以下代码: function jLib(selector) { this.elements =
我有一组嵌套的 div: a b c d 我
现在我有这段代码: function delete_box(n) { document.getElementById("box"+n).style.display = "none";
我有一个获取元素的 id 并找出它的 parentNode 的函数,现在我想在那个 中找到所有 id 以相同的 string 开头的元素>父节点. 有什么功能或方法可以找出来吗?我正在尝试这个: va
是否可以链接 parentNode(或类似的)调用? 例如,假设我有这个 html: 现在假设我在“按钮”上有一个事件监听器。现在我想将
考虑这个简单的页面: var upper; var lower; function crop() { //upper = document.getElemen
我有一个项目列表,上面有不同的事件处理程序。 ... Item ... Add to list A Add to list B
如果它有几个没有 id 的子节点,那么将一些内容添加到 ParentNode 的最佳方法是什么。 条件是: I need to add contents inside this
我是一名优秀的程序员,十分优秀!