jquery淡出并重定向不在IE中工作

时间:2014-11-18 04:41:55

标签: javascript jquery internet-explorer

我有一个网站,我有以下脚本用于处理所有链接:

$(document).ready(function(){
$("body").css("display","none");
$("body").fadeIn(2000);
$("a").click(function(event){event.preventDefault();
linkLocation=this.href;
if(!linkLocation.contains("#")){$("body").fadeOut(1000,redirectPage);
}});

function redirectPage(){
window.location=linkLocation;}})

当点击链接淡出然后淡入时,应该做的是。

我面临的问题是,在IE中,链接根本不起作用。

是否可以编辑我的代码以使其正常工作?

如果没有,有没有办法在这个问题上使用备用代码?

此问题在chrome中不存在,我使用的是最新的IE

3 个答案:

答案 0 :(得分:2)

我已经完成了您的代码,几乎是正确的,您只需更改点击功能中的内容,因为preventDefault();使用<a></a>标记的默认功能创建问题... 当它在IE中询问时,也请点击允许阻止内容。

而是试试这个: -

<script>
$(document).ready(function(){
   $("body").css("display","none");
   $("body").fadeIn(2000);
   $("a").click(function() {
      linkLocation=this.href;
      if(!linkLocation.contains("#"))
      {
          $("body").fadeOut(1000,redirectPage);
      }

});

     function redirectPage()
     {
       window.location=linkLocation;
     }
});
</script>

我希望这对你有用..

答案 1 :(得分:2)

您应首先使用 indexOf()方法检查您的网址是否包含要检查的子字符串。如果它包含该字符/子字符串,那么它将返回任何 0 正值。否则它将返回 -1

尝试这种方式:

HTML:

<a href="www.google.com">ToogleFade</a>

jQuery:

$(document).ready(function(){
    $("body").css("display", "none");
    $("body").fadeIn(2000);
    $("a").on("click", function(e){
        linkLocation = $(this).attr("href");
        e.preventDefault();

        if(linkLocation.indexOf('#') == -1){
            $("body").fadeOut(3000, redirectPage);
        }
    });

    function redirectPage()
    {
       window.location=linkLocation;
    }
});

jsFiddle

资源:

indexOf()

答案 2 :(得分:2)

我发现答案是设置z-index。我有一堆绝对定位的div,并希望在它们之间淡出。我可以让IE8很好地处理淡入淡出的唯一方法是将元素的z-index设置为高于要淡化的元素。

$('#fadeoutdiv').css({zIndex:99}).fadeOut(2000);
$('#fadeindiv').css({zIndex:90}).fadeOut(2000);

和重定向检查Link Stackoverflow