使用jquery删除标记属性时IE是否失败?

时间:2011-04-29 17:45:07

标签: jquery internet-explorer

我在元素中使用了不同的标题属性框。我开发了一个简单的jQuery东西,但是......“有史以来最好的朋友”,IE,无法正常工作。很简单,不要像其他浏览器那样删除标题属性。结果:我的框显示了标题atrib和自己的浏览器框。我该如何解决这个问题? (代码下)。 注意:适用于Chrome,Safari,Firefox,Opera。但IE没有。

<title>Box</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
    #dbox {
        background: #003767;
        padding: 5px 8px;
        position: absolute;
        margin: 20px;
        color: white;
        font-size: 14px;
        display: inline;
        /* border radius specif browsers */
        -webkit-border-radius: 3px; /* safari, chrome */
        -khtml-border-radius: 3px; /* ktml browsers */
        -moz-border-radius: 3px; /* firefox, mozila found. */
        -o-border-radius: 3px; /* opera, opmob */
    }
</style>
<script type="text/javascript" src="js/jquery-1.5.2.min.js"></script>
<script type="text/javascript">
    var dbox_time = 120;
    var delay_time = 500;

    $(document).ready(function(){
        $('<div id="dbox"></div>').insertAfter(('body'));

        $("[title != '']").each(function() {
            $(this).addClass('lkBox');
            $(this).css({border: '1px solid red'});
        });

        $('#dbox').empty();
        $('#dbox').css({
            display: 'none',
            opacity: '0'
        })

        $(document).mousemove(function(e){
            $('#dbox').css({
                'left': e.pageX,
                'top' : e.pageY
            })
        })

        $('.lkBox').mouseover(function(){
            $('#dbox').text($(this).attr('title'));
            $('#dbox').css({display: 'block'})
                      .stop().animate({opacity: '1'}, dbox_time)
        })

        $('.lkBox').mouseout(function(){
            $(this).attr('title', $('#dbox').text());
            $('#dbox').css({display: 'none'})
                      .stop().animate({
                opacity: '0'
            }, dbox_time)                
        })
    })

</script>

体:

<div style="float: left; width: 70%; padding: 50px;">
  <h1>Examples: (mouse over the links)</h1>
  <p>Curabitur lacus tortor, pellentesque eget <a href="#">interdum in</a>, auctor et lorem. In in quam lorem, vel <a href="#" title="i´m am a title =). must show">sagittis lec</a>. Donec felis leo, id fermentum nibh porttitor. Vestibulum ante <a href="#" title="">empy title (dont need to work)<span></span></a> primis. Lorem ipsum dolor sit amet, <a href="#" title="another title to show">lorem ipsum</a> elit.</p>
  </div>

信息:如果在

之后发出警报
$(this).attr('title', $('#dbox').text());

它适用于IE ..但我无法使用警报。

1 个答案:

答案 0 :(得分:2)

我在FF4中测试了你的代码,我在IE中获得了相同的双标题工具提示行为(你的工具提示会弹出,然后内置的FF会在继续将鼠标悬停在链接上后大约一秒钟弹出)。从您发布的代码中,这是绝对预期的行为。

你需要做的是利用一个不同的属性(即:使用'dboxtitle'而不是'title'),或者你需要在mouseover / mouseout上动态删除和重新添加标题,以便浏览器看不到它(参考:Disabling browser tooltips on links and <abbr>s)。