Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止;标题「;导致浏览器立交桥的父元素的属性_Javascript_Html_Title - Fatal编程技术网

Javascript 防止;标题「;导致浏览器立交桥的父元素的属性

Javascript 防止;标题「;导致浏览器立交桥的父元素的属性,javascript,html,title,Javascript,Html,Title,好的浏览器都是这样工作的:一个元素的空“title”属性意味着“不必在这里显示title立交桥”。这是有道理的,因为对于大多数人来说,一个没有任何内容的白色小天桥(编辑-或者只有一个空格字符)是完全无用的 IE的设计者不同意 我的问题是,我在一个网站上有一个小小的“这是什么?”机制,它涉及一个绝对定位的,其中包含一个问号的小图形。该有一个“title”属性,其中有一个问题,如“历史橡皮擦按钮”的作用是什么?”当您单击问号时,会弹出一个小“Help”气泡,您可以阅读有关该主题的内容。“标题”的意思

好的浏览器都是这样工作的:一个元素的空“title”属性意味着“不必在这里显示title立交桥”。这是有道理的,因为对于大多数人来说,一个没有任何内容的白色小天桥(编辑-或者只有一个空格字符)是完全无用的

IE的设计者不同意

我的问题是,我在一个网站上有一个小小的“这是什么?”机制,它涉及一个绝对定位的
,其中包含一个问号的小图形。该
有一个“title”属性,其中有一个问题,如“历史橡皮擦按钮”的作用是什么?”当您单击问号时,会弹出一个小“Help”气泡,您可以阅读有关该主题的内容。“标题”的意思是,如果用户将鼠标悬停在问号上,他们会看到一个(希望)他们可能想知道的问题

“标题”的问题是弹出的“帮助”气球位于绝对位置的
内,因此它正确地位于页面上。换句话说,绝对定位的
只有“position:absolute”,但允许将其放置在页面的“right”位置,而不进行任何偏移计算。因此,“帮助”气球自动地位于正确的位置但是:父级
上的“标题”令人讨厌,因为浏览器会在气球打开后弹出它。为什么?因为“帮助”气球在词汇上包含在外部
中,即使外部
只是一个带问号的小东西

因此,解决方案#1是为“help”气球
提供自己的“title”属性,其中没有任何内容(edit-我搞错了;它不是标题中的任何内容,而是一个空格字符)。除了在IE中,这非常有效。在IE now中,空的“title”属性会导致浏览器显示一个小的空白矩形。有帮助

当然,我可以摆弄Javascript,只需在气球显示时取消父元素的“title”属性,但我很好奇在IE中“覆盖”父元素“title”的可能方法,这种方法只需标记即可。如果不可能,那好吧

简单演示页面:(使用IE7或IE8进行尝试,以查看小的空白白框)


编辑-哈哈哈-当我更改代码以便显式清空所有父元素上的“title”属性时,即显示一个带有单词“null”的立交桥:-)

我认为你不能做你想做的事。不管怎么说,这似乎是一种黑客行为——子DOM元素属性并不意味着“覆盖”父属性。您可能应该使用正确的标题包装特定文本,例如:


为什么不将标题指定给问号元素(#qmark),而不是包含div的元素? 因此,不是:

<div title="this is the overlapping title">  
    <div id="qmark">?</div>
    <div id="hiddenContainer"></div>
</div>  

?
是的

<div>
    <div id="qmark" title="this title no longer overlaps">?</div> 
    <div id="hiddenContainer"></div>
</div>

? 

我最终扩充了打开/关闭“帮助”气泡的现有代码,使其沿着父元素链运行,并将“标题”代码隐藏在jQuery“数据”功能中。气泡关闭时,标题将恢复。

如果您愿意,我可以设置一个测试页;这是一个非常简单的交易。好吧,现在的问题包括测试页面。如果服务器端没有标题,或者是空白的,等等,你可以不包括标题吗?请注意,在你的测试页面上,我还看到Google Chrome 5和Safari 5(都在Mac上)上的“空标题”弹出窗口。依我看,这是正确的行为-Firefox也应该显示这一点。@Kyle嗨,谢谢。问题是,当帮助泡沫还没有打开时,我想在我的小问号上加上标题。在它开放之后,我不太关心这个小问号上的帮助天桥,但我绝对不希望它越过帮助泡泡,因为它很烦人,而且是错误的。我会看看是否可以更新我的示例页面,以显示我试图避免的效果。但是,“title”属性确实无法以任何其他方式工作。根据我能想到的任何定义,容器的标题与包含的元素的标题不同都不是无效的,浏览器只会向我显示一个标题,即与鼠标暂停的元素“最接近”的标题。这是一个好主意,事实上,我是在读了@desau的答案后开始这样做的。然后我意识到我的“帮助”气泡实际上可能嵌套在另一层带有“标题”的标记中。有人可能会说,我只是使用了太多的这些,我应该改掉这个习惯,特别是考虑到“触摸”界面的兴起,那里实际上没有“悬停”。