为什么这个工具提示没有'不在IE工作吗?错误:应为对象

Why this tooltip don't work in IE? Error: Object expected?

本文关键字:工作 错误 对象 IE 不在 工具提示 为什么      更新时间:2023-09-26

你能告诉我这个代码哪里错了吗:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>tooltip</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
        xOffset = 140;
        yOffset = 50;
    $("a.preview").hover(function(e){
        this.t = this.title;
        this.title = "";    
        var c = (this.t != "") ? "<br/>" + this.t : "";
        var mainImage = $(this).find("img").attr("src");
        mainImageWidth = $(this).find("img").width();
        $("body").append("<p id='preview-img'><img src='"+ mainImage +"' alt='Loading...' />"+ c +"</p>");                               
        $("#preview-img")
            .css("top",(e.pageY) + "px")
            .css("left",(e.pageX + (mainImageWidth + yOffset)) + "px")
            .fadeIn("normal");              
    },
    function(){
        this.title = this.t;    
        $("#preview-img").fadeOut("fast");
        $("#preview-img").remove();
    }); 
    $("a.preview").mousemove(function(e){
        $("#preview-img")
            .css("top",(e.pageY) + "px")
            .css("left",(e.pageX + (mainImageWidth + yOffset)) + "px");
    });     
});
</script>
<style>
#preview-img {
    position: absolute;
    border: 5px solid #6d6d6d;
    background: #eaeaea;
    padding: 8px;
    display: none;
    color: #6d6d6d;
    text-align: center;
    -webkit-border-radius: 8px;
    -moz-border-radius: 8px;
    border-radius: 8px;
}
a.preview img {
    display:none
}
</style>
</head>
<body>
<ul>
    <li>
        <a href="#" class="preview" title="Test 1">Test 1
            <img src="http://images-3.findicons.com/files/icons/2117/nuove/128/camera_test.png" alt="Test 1">
        </a>
    </li>
    <li>
        <a href="#" class="preview" title="Test 2">Test 2
            <img src="http://images-3.findicons.com/files/icons/2117/nuove/128/camera_test.png" alt="Test 2">
        </a>
    </li>
    <li>
        <a href="#" class="preview" title="Test 3">Test 3
            <img src="http://images-3.findicons.com/files/icons/2117/nuove/128/camera_test.png" alt="Test 3">
        </a>
    </li>
    <li>
        <a href="#" class="preview" title="Test 4">Test 4
            <img src="http://images-3.findicons.com/files/icons/2117/nuove/128/camera_test.png" alt="Test 4">
        </a>
    </li>
</ul>
</body>
</html>

它可以在FF、Chrome、Opera中工作,但在IE 8中我收到错误:应为Object。根据我在这里和互联网上读到的内容,当定义了两个相同的ID时,就会发生这种错误。但我看不到相同的ID:)

在外部定义var mainImageWidth;似乎可以修复错误。我在IE 8中进行了测试。

jsFiddle