我在表格列中有链接按钮,并且想要显示工具提示,即使它已被禁用。这在FF和Chrome中运行良好但在IE8中没有,因为IE8禁用元素没有收到任何事件我尝试了这种解决方法
如果它被禁用,我在链接按钮外面创建一个跨度,找到链接按钮的父节点,即表格单元格......然后清除表格单元格内容,将跨度添加到它,然后将链接按钮添加到跨度并将工具提示应用于跨度。
但IE8再次将jquery生成的代码应用于表格单元格以及跨度,因此我的工具提示生成2次使其看起来更大胆.......我不想要这个。这在FF中工作正常和铬
我使用的是简单的tooltip jquery插件,你可以在这里找到
http://dev.mariusilie.net/content/simple-tooltip-jquery-plugin
这里是我的代码
$(document).ready(function (){
var $elems=$(".with-tooltip");
$elems.each(function(){
var state=$(this).attr("disabled");
if(state==true || state=="disabled")
{
var $child=$(this);
var newElem= $(document.createElement('span'));
newElem.attr("title","privacy requested by owner");
var parentElement=$child.parent();
parentElement.empty();
newElem.append($child);
newElem.simpletooltip();
parentElement.append(newElem);
}
});
});
您可以在 www.sandesh4u.com/default2.aspx
查看此问题如果您执行查看源,您将看到问题所在..
答案 0 :(得分:2)
我没有IE8进行测试,但我重写了改变调用顺序的内容empty
和append
- 这可能足以修复IE ...
$(document).ready(function() {
$(".with-tooltip").
each(function() {
var $child = $(this),
state = $child.attr("disabled");
if (state == true || state == "disabled") {
$child.parent().replaceWith(
$('<span title="privacy requested by owner">').
append($child).
simpletooltip()
);
}
});
});
(我认为state
测试可以简化为if (state)
,但我不是100%肯定的)
答案 1 :(得分:0)
我建议使用不同的DOCTYPE来防止此类问题:
!DOCTYPE HTML PUBLIC“ - // W3C // DTD HTML 4.01 // EN”“http://www.w3.org/TR/html4/strict.dtd
答案 2 :(得分:0)
没关系......我改变了一下代码......
我发现jquery中的wrap()函数对于添加父项非常有用...我会在这里发布我的新代码....更大胆的提示是插件的问题,它是我可以忍受的东西....
谢谢大家帮助我解决这个问题
$(document).ready(function() {
$(".with-tooltip").
each(function() {
var $child = $(this),
state = $child.attr("disabled");
if (state == true || state == "disabled") {
$child.wrap(document.createElement("span"));
$child.parent().attr("title","Privacy requested by owner").simpletooltip();
}
});
});