javascript不适用于IE 9和Firefox

javascript not working in I.E. 9 as well as Firefox

本文关键字:Firefox IE 不适用 适用于 javascript      更新时间:2023-09-26

问候stackoverflow的同事们,

最近我陷入了进退两难的境地。下面提供的代码相当长,但是,对于标记为(General、Kills和Scores)的每3个主要容器,大部分都是重复代码。

我编写的javascript与jquery 1.9.1不谋而合——滑块不滑动——它在Chrome中运行得很好,但由于某种原因,在I.E.9和Firefox中没有。。。我已经对它进行了无数次修改,但没有发现任何问题,说明它为什么在这些浏览器中不起作用。如果你能仔细查看一下,并向我提供我的javascript中哪里出了问题,我将不胜感激,因为我认为你们会更容易发现这个问题,因为这对你们来说是新鲜的。

演示:http://jsfiddle.net/aeJtx/3/

JAVASCRIPT:

/* ===== Start of 'Slider - My Statistics (Achievements - General)' ===== */
$(function () {
    $('input.field').focus(function () {
        if (this.title == this.value) {
            this.value = '';
        }
    }).blur(function () {
        if (this.value === '') {
            this.value = this.title;
        }
    });
    var currentPage = 1;
    $('#slider_achievements_general .buttons_achievements_general span').on('click', function () {
        var timeout = setTimeout(function () {
            $("img").trigger("slidermove");
        }, 100);
        var fragments_count = $(this).parents('#slider_achievements_general:eq(0)').find('.fragment_achievements_general').length;
        var fragment_width = $(this).parents('#slider_achievements_general:eq(0)').find('.fragment_achievements_general').width();
        var perPage = 1;
        var numPages = Math.ceil(fragments_count / perPage);
        var stepMove = fragment_width * perPage;
        var container = $(this).parents('#slider_achievements_general:eq(0)').find('.con_achievements_general');
        var firstPosition = 0;
        var lastPosition = -((numPages - 1) * stepMove);
        if ($(this).hasClass('next')) {
            currentPage++;
            if (currentPage > numPages) {
                currentPage = 1;
                container.animate({
                    'left': firstPosition
                });
                return;
            }
            container.animate({
                'left': -((currentPage - 1) * stepMove)
            });
        }
        if ($(this).hasClass('prev')) {
            currentPage--;
            if (currentPage < 1) {
                currentPage = numPages;
                container.animate({
                    'left': lastPosition
                });
                return;
            }
            container.animate({
                'left': -((currentPage - 1) * stepMove)
            });
        }
    });
});
/* ===== Start of 'Slider - My Statistics (Achievements - Kills)' ===== */
$(function () {
    $('input.field').focus(function () {
        if (this.title == this.value) {
            this.value = '';
        }
    }).blur(function () {
        if (this.value === '') {
            this.value = this.title;
        }
    });
    var currentPage = 1;
    $('#slider_achievements_kills .buttons_achievements_kills span').on('click', function () {
        var timeout = setTimeout(function () {
            $("img").trigger("slidermove");
        }, 100);
        var fragments_count = $(this).parents('#slider_achievements_kills:eq(0)').find('.fragment_achievements_kills').length;
        var fragment_width = $(this).parents('#slider_achievements_kills:eq(0)').find('.fragment_achievements_kills').width();
        var perPage = 1;
        var numPages = Math.ceil(fragments_count / perPage);
        var stepMove = fragment_width * perPage;
        var container = $(this).parents('#slider_achievements_kills:eq(0)').find('.con_achievements_kills');
        var firstPosition = 0;
        var lastPosition = -((numPages - 1) * stepMove);
        if ($(this).hasClass('next')) {
            currentPage++;
            if (currentPage > numPages) {
                currentPage = 1;
                container.animate({
                    'left': firstPosition
                });
                return;
            }
            container.animate({
                'left': -((currentPage - 1) * stepMove)
            });
        }
        if ($(this).hasClass('prev')) {
            currentPage--;
            if (currentPage < 1) {
                currentPage = numPages;
                container.animate({
                    'left': lastPosition
                });
                return;
            }
            container.animate({
                'left': -((currentPage - 1) * stepMove)
            });
        }
    });
});
/* ===== Start of 'Slider - My Statistics (Achievements - Scores)' ===== */
$(function () {
    $('input.field').focus(function () {
        if (this.title == this.value) {
            this.value = '';
        }
    }).blur(function () {
        if (this.value === '') {
            this.value = this.title;
        }
    });
    var currentPage = 1;
    $('#slider_achievements_scores .buttons_achievements_scores span').on('click', function () {
        var timeout = setTimeout(function () {
            $("img").trigger("slidermove");
        }, 100);
        var fragments_count = $(this).parents('#slider_achievements_scores:eq(0)').find('.fragment_achievements_scores').length;
        var fragment_width = $(this).parents('#slider_achievements_scores:eq(0)').find('.fragment_achievements_scores').width();
        var perPage = 1;
        var numPages = Math.ceil(fragments_count / perPage);
        var stepMove = fragment_width * perPage;
        var container = $(this).parents('#slider_achievements_scores:eq(0)').find('.con_achievements_scores');
        var firstPosition = 0;
        var lastPosition = -((numPages - 1) * stepMove);
        if ($(this).hasClass('next')) {
            currentPage++;
            if (currentPage > numPages) {
                currentPage = 1;
                container.animate({
                    'left': firstPosition
                });
                return;
            }
            container.animate({
                'left': -((currentPage - 1) * stepMove)
            });
        }
        if ($(this).hasClass('prev')) {
            currentPage--;
            if (currentPage < 1) {
                currentPage = numPages;
                container.animate({
                    'left': lastPosition
                });
                return;
            }
            container.animate({
                'left': -((currentPage - 1) * stepMove)
            });
        }
    });
});

CSS:

/* ===== Start of 'Achievement Details - (General)' ===== */
 #general_wrapper {
    width: 650px;
    height: 150px;
    padding: 0;
    margin: 0 auto;
    background: #333;
    border: 2px solid #444;
    -moz-border-radius: 12px;
    -webkit-border-radius: 12px;
    border-radius: 12px;
    -moz-box-shadow: 0 28px 24px -24px #000, inset 0 -0.3em 0.9em 0.3em #000;
    -webkit-box-shadow: 0 28px 24px -24px #000, inset 0 -0.3em 0.9em 0.3em #000;
    box-shadow: 0 28px 24px -24px #000, inset 0 -0.3em 0.9em 0.3em #000;
    position: relative;
    top: 20px;
}
#general_wrapper h2 {
    width: 626px;
    height: 20px;
    padding: 6px 0 6px 0;
    margin: 0 12px;
    border-bottom: 1px solid #444;
    float: left;
    color: #AB9B68;
    font: 20px Arial, Helvetica, sans-serif;
    font-weight: bold;
    font-variant: small-caps;
    text-shadow: 1px 1px 1px #000, -2px -2px 2px #000;
    filter: progid:DXImageTransform.Microsoft.Shadow(direction=315, strength=2, color=000000);
}
#slider_achievements_general {
    width: 577px;
    height: 96px;
    padding: 0;
    margin: 0 auto;
    background: #222;
    border: 2px solid #444;
    -moz-box-shadow: inset 0 0.3em 0.9em 0.3em #000;
    -webkit-box-shadow: inset 0 0.3em 0.9em 0.3em #000;
    box-shadow: inset 0 0.3em 0.9em 0.3em #000;
    position: relative;
    top: 40px;
}
.buttons_achievements_general {
    position: absolute;
    top: -2px;
    right: -25px;
    z-index: 101;
}
.buttons_achievements_general span {
    position: absolute;
    display: block;
    width: 22px;
    height: 62px;
    padding: 34px 0 0 0;
    cursor: pointer;
}
.buttons_achievements_general span.prev {
    color: #111;
    font: 20px Arial, Helvetica, sans-serif;
    font-weight: bold;
    right: 602px;
    background: rgba(204, 204, 204, 0.5);
    border: 2px solid #444;
    -moz-border-radius: 8px 0 0 8px;
    -webkit-border-radius: 8px 0 0 8px;
    border-radius: 8px 0 0 8px;
    -moz-box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    -webkit-box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    text-align: center;
    text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.7);
}
.buttons_achievements_general span.next {
    color: #111;
    font: 20px Arial, Helvetica, sans-serif;
    font-weight: bold;
    right: 0;
    background: rgba(204, 204, 204, 0.5);
    border: 2px solid #444;
    -moz-border-radius: 0 8px 8px 0;
    -webkit-border-radius: 0 8px 8px 0;
    border-radius: 0 8px 8px 0;
    -moz-box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    -webkit-box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    text-align: center;
    text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.7);
}
.holder_achievements_general {
    width: 577px;
    height: 96px;
    position: relative;
    top: -31px;
    overflow: hidden;
}
.con_achievements_general {
    width: 100000px;
    height: 96px;
    position: absolute;
}
.fragment_achievements_general {
    width: 577px;
    height: 96px;
    float: left;
    display: inline;
}
/* ===== Start of 'General Medals Wrapper inside Fragment' ===== */
 #general_medals_wrapper {
    width: 576px;
    height: 96px;
    float: left;
}
/* ===== Start of 'Achievement Details - (Kills)' ===== */
 #kills_wrapper {
    width: 650px;
    height: 150px;
    padding: 0;
    margin: 0 auto;
    background: #333;
    border: 2px solid #444;
    -moz-border-radius: 12px;
    -webkit-border-radius: 12px;
    border-radius: 12px;
    -moz-box-shadow: 0 28px 24px -24px #000, inset 0 -0.3em 0.9em 0.3em #000;
    -webkit-box-shadow: 0 28px 24px -24px #000, inset 0 -0.3em 0.9em 0.3em #000;
    box-shadow: 0 28px 24px -24px #000, inset 0 -0.3em 0.9em 0.3em #000;
    position: relative;
    top: 50px;
}
#kills_wrapper h2 {
    width: 626px;
    height: 20px;
    padding: 6px 0 6px 0;
    margin: 0 12px;
    border-bottom: 1px solid #444;
    float: left;
    color: #AB9B68;
    font: 20px Arial, Helvetica, sans-serif;
    font-weight: bold;
    font-variant: small-caps;
    text-shadow: 1px 1px 1px #000, -2px -2px 2px #000;
    filter: progid:DXImageTransform.Microsoft.Shadow(direction=315, strength=2, color=000000);
}
#slider_achievements_kills {
    width: 577px;
    height: 96px;
    padding: 0;
    margin: 0 auto;
    background: #222;
    border: 2px solid #444;
    -moz-box-shadow: inset 0 0.3em 0.9em 0.3em #000;
    -webkit-box-shadow: inset 0 0.3em 0.9em 0.3em #000;
    box-shadow: inset 0 0.3em 0.9em 0.3em #000;
    position: relative;
    top: 40px;
}
.buttons_achievements_kills {
    position: absolute;
    top: -2px;
    right: -25px;
    z-index: 101;
}
.buttons_achievements_kills span {
    position: absolute;
    display: block;
    width: 22px;
    height: 62px;
    padding: 34px 0 0 0;
    cursor: pointer;
}
.buttons_achievements_kills span.prev {
    color: #111;
    font: 20px Arial, Helvetica, sans-serif;
    font-weight: bold;
    right: 602px;
    background: rgba(204, 204, 204, 0.5);
    border: 2px solid #444;
    -moz-border-radius: 8px 0 0 8px;
    -webkit-border-radius: 8px 0 0 8px;
    border-radius: 8px 0 0 8px;
    -moz-box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    -webkit-box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    text-align: center;
    text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.7);
}
.buttons_achievements_kills span.next {
    color: #111;
    font: 20px Arial, Helvetica, sans-serif;
    font-weight: bold;
    right: 0;
    background: rgba(204, 204, 204, 0.5);
    border: 2px solid #444;
    -moz-border-radius: 0 8px 8px 0;
    -webkit-border-radius: 0 8px 8px 0;
    border-radius: 0 8px 8px 0;
    -moz-box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    -webkit-box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    text-align: center;
    text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.7);
}
.holder_achievements_kills {
    width: 577px;
    height: 96px;
    padding: 0;
    margin: 0;
    position: relative;
    top: -31px;
    overflow: hidden;
}
.con_achievements_kills {
    width: 100000px;
    height: 96px;
    position: absolute;
}
.fragment_achievements_kills {
    width: 577px;
    height: 96px;
    float: left;
    display: inline;
}
/* ===== Start of 'Kills Medals Wrapper inside Fragment' ===== */
 #kills_medals_wrapper {
    width: 650px;
    height: 150px;
    float: left;
}
/* ===== Start of 'Achievement Details - (Scores)' ===== */
 #scores_wrapper {
    width: 650px;
    height: 150px;
    padding: 0;
    margin: 0 auto;
    background: #333;
    border: 2px solid #444;
    -moz-border-radius: 12px;
    -webkit-border-radius: 12px;
    border-radius: 12px;
    -moz-box-shadow: 0 28px 24px -24px #000, inset 0 -0.3em 0.9em 0.3em #000;
    -webkit-box-shadow: 0 28px 24px -24px #000, inset 0 -0.3em 0.9em 0.3em #000;
    box-shadow: 0 28px 24px -24px #000, inset 0 -0.3em 0.9em 0.3em #000;
    position: relative;
    top: 80px;
}
#scores_wrapper h2 {
    width: 626px;
    height: 20px;
    padding: 6px 0 6px 0;
    margin: 0 12px;
    border-bottom: 1px solid #444;
    float: left;
    color: #AB9B68;
    font: 20px Arial, Helvetica, sans-serif;
    font-weight: bold;
    font-variant: small-caps;
    text-shadow: 1px 1px 1px #000, -2px -2px 2px #000;
    filter: progid:DXImageTransform.Microsoft.Shadow(direction=315, strength=2, color=000000);
}
#slider_achievements_scores {
    width: 577px;
    height: 96px;
    padding: 0;
    margin: 0 auto;
    background: #222;
    border: 2px solid #444;
    -moz-box-shadow: inset 0 0.3em 0.9em 0.3em #000;
    -webkit-box-shadow: inset 0 0.3em 0.9em 0.3em #000;
    box-shadow: inset 0 0.3em 0.9em 0.3em #000;
    position: relative;
    top: 40px;
}
.buttons_achievements_scores {
    position: absolute;
    top: -2px;
    right: -25px;
    z-index: 101;
}
.buttons_achievements_scores span {
    position: absolute;
    display: block;
    width: 22px;
    height: 62px;
    padding: 34px 0 0 0;
    cursor: pointer;
}
.buttons_achievements_scores span.prev {
    color: #111;
    font: 20px Arial, Helvetica, sans-serif;
    font-weight: bold;
    right: 602px;
    background: rgba(204, 204, 204, 0.5);
    border: 2px solid #444;
    -moz-border-radius: 8px 0 0 8px;
    -webkit-border-radius: 8px 0 0 8px;
    border-radius: 8px 0 0 8px;
    -moz-box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    -webkit-box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    text-align: center;
    text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.7);
}
.buttons_achievements_scores span.next {
    color: #111;
    font: 20px Arial, Helvetica, sans-serif;
    font-weight: bold;
    right: 0;
    background: rgba(204, 204, 204, 0.5);
    border: 2px solid #444;
    -moz-border-radius: 0 8px 8px 0;
    -webkit-border-radius: 0 8px 8px 0;
    border-radius: 0 8px 8px 0;
    -moz-box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    -webkit-box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    box-shadow: inset 0 -0.15em 0.45em 0.15em #000;
    text-align: center;
    text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.7);
}
.holder_achievements_scores {
    width: 577px;
    height: 96px;
    padding: 0;
    margin: 0;
    position: relative;
    top: -31px;
    overflow: hidden;
}
.con_achievements_scores {
    width: 100000px;
    height: 96px;
    position: absolute;
}
.fragment_achievements_scores {
    width: 577px;
    height: 96px;
    float: left;
    display: inline;
}
/* ===== Start of 'Kills Medals Wrapper inside Fragment' ===== */
 #scores_medals_wrapper {
    width: 650px;
    height: 150px;
    float: left;
}

HTML:

<div id="general_wrapper">
     <h2>General</h2>
    <div id="slider_achievements_general">
        <div class="buttons_achievements_general"> <span class="next" title="Next">»</span>  <span class="prev" title="Previous">«</span>
        </div>
        <div class="holder_achievements_general">
            <div class="con_achievements_general">
                <div class="fragment_achievements_general">
                    <div id="general_medals_wrapper">
                        <p>Hi</p>
                    </div>
                </div>
                <div class="fragment_achievements_general">
                    <div id="general_medals_wrapper">
                        <p>World</p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<div id="kills_wrapper">
     <h2>Kills</h2>
    <div id="slider_achievements_kills">
        <div class="buttons_achievements_kills"> <span class="next" title="Next">»</span>  <span class="prev" title="Previous">«</span>
        </div>
        <div class="holder_achievements_kills">
            <div class="con_achievements_kills">
                <div class="fragment_achievements_kills">
                    <div id="kills_medals_wrapper">
                        <p>Hello</p>
                    </div>
                </div>
                <div class="fragment_achievements_kills">
                    <div id="kills_medals_wrapper">
                        <p>World</p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<div id="scores_wrapper">
     <h2>Scores</h2>
    <div id="slider_achievements_scores">
        <div class="buttons_achievements_scores"> <span class="next" title="Next">»</span>  <span class="prev" title="Previous">«</span>
        </div>
        <div class="holder_achievements_scores">
            <div class="con_achievements_scores">
                <div class="fragment_achievements_scores">
                    <div id="scores_medals_wrapper">
                        <p>New</p>
                    </div>
                </div>
                <div class="fragment_achievements_scores">
                    <div id="scores_medals_wrapper">
                        <p>Slider</p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

我相信我可能有这个问题的解决方案。我最终在一个不同的脚本上把上面的代码添加到了我的网站上,看看问题可能在哪里,并认为这可能是你遇到的问题,它在FF或IE中都不起作用——就像过去发生在我身上一样,果不其然,一旦我实现了你的上面代码,它也做了同样的事情。

如果在不同的文件夹/目录中有多个js页面,请检查html页面是如何引用javascript页面的。

例如,Do THIS:

<script type="text/javascript" src="/js/JQuery/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/Your_Script.js"></script>
<script type="text/javascript" src="/js/My_Script.js"></script>

而不是这样:

<script type="text/javascript" src="/js/JQuery/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="/js/My_Script.js"></script>
<script type="text/javascript" src="js/Your_Script.js"></script>

如果你的网站上有多个使用JS的文件夹/目录,你需要确保你正在处理的任何页面都可以检查你首先处理的页面的JS脚本,而不是你可能在其他文件夹/目录中使用的任何其他JS脚本。因此,如果您使用我提供给您的上面的第一个示例,它在所有浏览器中都应该可以毫无问题地工作。这件事发生在我几个月前,我花了很长时间才弄清楚发生了什么

你想确保你正在使用的任何jquery都是写出来的,并且首先在所有html页面上被引用,然后你可能拥有的任何js脚本都应该遵循这一点,但要确保它们在你正在处理的任何html页面上的顺序都是正确的。

设置示例:

主目录:

-->css文件夹

------->Your_css_Script.css

-->图像文件夹

-->js文件夹(位于"js文件夹"内:)

------->Your_js_Script.js

------->JQuery文件夹

------------>jquery-1.9.1.min.js

-->index.html

-->另一个文件夹-(在"另一个"文件夹中,你有:)

------->css文件夹

------------>Your_css2_Script.css

------->图像文件夹

------->js文件夹

------------>Your_js2_Script.js

------->index2.html

我为上面的糟糕图表道歉,但希望这能帮助你理解结构。因此,如果您正在处理index2.html和Your_js2_Script.js,但还需要引用Your_js_Script.js上的内容以及index2.html上的jquery脚本,则需要在index2.html页面上引用这些脚本,如下所示:

<script type="text/javascript" src="/js/JQuery/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/Your_js2_Script.js"></script>
<script type="text/javascript" src="/js/Your_js_Script.js"></script>

顺便说一句,这是一个非常光滑的设置,你正在进行!我希望我提供的帮助。