不寻常的Javascript图像标题错误

不寻常的Javascript图像标题错误,javascript,jquery,css,debugging,Javascript,Jquery,Css,Debugging,在网站上使用一些自制的(在谷歌的帮助下)javscript。它在Firefox、Safari、Chrome中显示得很好,但在InternetExplorer中当然不行。我没有在IE8中测试,只有IE7,但我需要让IE7的错误免费 基本上,我从Flickr抓取照片,并通过WordPress的FlickrRSS插件输出它们。我将在下面发布相关代码。我的问题是:悬停图像会为任何没有标题/标题的图像弹出(较大)图像。对于那些有标题的人,弹出的图像根本不会显示(但是这个错误只发生在IE7中)。我真的不确定

在网站上使用一些自制的(在谷歌的帮助下)javscript。它在Firefox、Safari、Chrome中显示得很好,但在InternetExplorer中当然不行。我没有在IE8中测试,只有IE7,但我需要让IE7的错误免费

基本上,我从Flickr抓取照片,并通过WordPress的FlickrRSS插件输出它们。我将在下面发布相关代码。我的问题是:悬停图像会为任何没有标题/标题的图像弹出(较大)图像。对于那些有标题的人,弹出的图像根本不会显示(但是这个错误只发生在IE7中)。我真的不确定这是JS还是CSS错误,因为我无法进入DOM查看IE7中发生了什么,因为元素只在:hover期间追加,然后在mouseout时删除。任何调试帮助。。。求你了

可以在这里看到该网站的实时版本:(向下滚动至视频下的照片缩略图)

下面是每个元素的HTML输出%tags表示插件的短代码:

    <div class="popup">
        <a href="%image_medium%" class="preview" title="%title%"><img src="%image_square%" alt="%title%"  /></a> 
<img class="preload" style="display: none !important;" src="%image_medium%">
    </div>

下面是弹出窗口的HTML(动态生成并附加到具有固定位置的body标记)

Img标题作为标题出现在这里

以下是相关的javascript/jquery代码:

//The overlay or pop-up effect
this.imagePreview = function(){ 
    /* CONFIG */

        xOffset = 40;
        yOffset = 120;

        // these 2 variable determine popup's distance from the cursor
        // you might want to adjust to get the right result

    /* END CONFIG */
    $("a.preview").click(function(e){
        return false;
        });
    $("a.preview").hover(function(e){
        this.t = this.title;
        this.title = "";    
        var c = (this.t != "") ? "<br/><span>" + this.t : "</span>";
        $("body").append('<p id="preview"><img src="'+ this.href +'" alt="Image preview ... Loading" />'+ c +'</p>');
        $("#preview")
            .hide()
            .css("top",(e.pageY - yOffset) + "px")
            .css("left",(e.pageX + xOffset) + "px")
            .fadeIn("2000");                        
    },
    function(){
        this.title = this.t;    
        $("#preview").remove();
    }); 
    $("a.preview").mousemove(function(e){
        var top = e.pageY - yOffset;
        var left = e.pageX + xOffset;
        //flips the image if it gets too close to the right side
        while ((left + 500) > window.innerWidth){
             left -= jQuery("#preview").outerWidth() + xOffset*2;
        }
        $("#preview")
            .css("top",top + "px")
            .css("left",left + "px");
    });         
//覆盖或弹出效果
this.imagePreview=函数(){
/*配置*/
xOffset=40;
yOffset=120;
//这两个变量确定弹出窗口与光标的距离
//您可能需要调整以获得正确的结果
/*结束配置*/
$(“a.preview”)。单击(函数(e){
返回false;
});
$(“a.preview”).hover(函数(e){
this.t=this.title;
this.title=“”;
var c=(this.t!=”)?“
”+this.t:”; $(“body”).append(“

”+c+”

”); $(“预览”) .hide() .css(“顶部”(e.pageY-yOffset)+“px”) .css(“左”(e.pageX+xOffset)+“px”) .fadeIn(“2000”); }, 函数(){ this.title=this.t; $(“#预览”).remove(); }); $(“a.preview”).mousemove(函数(e){ var top=e.pageY-yOffset; var left=e.pageX+xOffset; //如果图像太靠近右侧,则翻转图像 而((左+500)>窗内宽度){ 左-=jQuery(“#preview”).outerWidth()+xOffset*2; } $(“预览”) .css(“顶部”,顶部+“px”) .css(“左”,左+“px”); });
在以下三元组中:

var c = (this.t != "") ? "<br/><span>" + this.t : "</span>";
var c=(this.t!=”)?“
”+this.t:”;
您的意思是“如果有标题,请插入一个换行符,然后打开一个跨距并弹出标题。如果没有,请关闭一个跨距标记”

基本上,第一种情况为您提供了一个未关闭的跨度,第二种情况为您关闭了一个从未打开过的跨度

正如@Basiclife所说的,准确的诊断和正确的语法如下:


var c=(this.t!=)?“
”+this.t+:”;

+1为了得到正确的答案,但为了完整起见,我可以建议您在答案中添加正确的行吗?
var c=(this.t!=)?“
”+this.t+:”
就是这样……我想我永远也找不到那个bug!非常感谢@kennis和@Basiclife,我根本不知道如何格式化它……谢谢!
var c = (this.t != "") ? "<br/><span>" + this.t : "</span>";