IE8中的jquery工具提示问题

时间:2009-09-04 08:47:28

标签: jquery

我在表格列中有链接按钮,并且想要显示工具提示,即使它已被禁用。这在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

查看此问题

如果您执行查看源,您将看到问题所在..

3 个答案:

答案 0 :(得分:2)

我没有IE8进行测试,但我重写了改变调用顺序的内容emptyappend - 这可能足以修复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();

            }
        });
});