使用jQuery在IE7中不生成DIV

时间:2012-02-10 17:34:38

标签: javascript jquery html css internet-explorer

我无法弄清楚为什么这个脚本在IE7和8中不起作用。它在所有其他浏览器中都能正常工作,但出于某种原因,在IE7和8中这个脚本只触发// thumbs hover位,而不是// loading images位(实际上更重要)。一切似乎都很好,有没有人有任何想法?

     function featuredJS() {

        $("[title]").attr("title", function(i, title) {
            $(this).data("title", title).removeAttr("title");
        });

        // loading images

        var last = "featured/01.jpg";

        $("#thumbs a").click(function(event) {
            event.preventDefault();
            var position = $(this).attr("class");
            var graphic = $(this).attr("href");
            var title = $(this).attr("alt");
            var description = $(this).data("title");
            var currentMargin = $("#full-wrapper #full").css("marginLeft");
            var currentWidth = $("#full-wrapper #full").css("width");
            var transitionTest = currentMargin.replace("px", "") * 1;
            if(last != graphic && ((transitionTest % 938) == 0 || transitionTest == 0)) {
                $("#placeholder").before( "<div class='featured'><div class='description " + position + "'>" + "<h3>" + title + "</h3>" + "<p>" + description + "</p>" + "</div><img src=\"" + graphic + "\" /><div style='clear:both;'></div></div>" );

                $("#full-wrapper #full").animate({
                    marginLeft: "-=938px"
                }, 500);

                $("#full-wrapper #full").css("width","+=938px");
                last = graphic;
            };
        });

        // thumbs hover

        $("#thumbs .thumb").hover(
            function () {
                $(this).find(".red-bar").animate({height:"72px"},{queue:false,duration:500});
            },
            function () {
                $(this).find(".red-bar").animate({height:"3px"},{queue:false,duration:500});
            }
        );

    };

http://www.weblinxinc.com/beta/welex/demo/

上的演示页面

1 个答案:

答案 0 :(得分:1)

您的问题是由于没有margin设置开始引起的。 transitionTest然后变为NaN,因为样式为auto,而非0px,就像您期望的那样。请考虑尝试这样做:

var transitionTest = parseInt("0"+currentMargin,10);

这将为您修剪“px”,并处理保证金为关键字的情况。