2011-11-07 25 views
1

好的,我在我的网站上有一个整洁的小登录表单,我喜欢占位符而不是标签!众所周知,微软甚至知道它拥有巨大的资源,但拒绝发布完整的兼容CSS3的HTML5浏览器。他们即便如此贪婪,他们不允许老用户升级到9,除非他们具有Windows Vista/7 ---结束IE咆哮IE强制内联样式重写我的Jquery魔法?

所以我使用的是假密码字段招我在这里读另一篇文章,但我有一个问题!当我尝试使fakepassword字段出现并隐藏密码时,看起来IE似乎在元素上强制某种假内联样式,并且不允许它隐藏!

下面的代码:

//This function hides our fake password field and changes focus to the real one. Yet another IE workaround... 
$("#fakepassword").focus(function(){ 
    $('#fakepassword').hide(); 
    $('#password').show(); 
    $('#password').focus(); 
}); 
//These functions perform the link hover copycat 
$("#titleHover").mouseenter(function(){ 
    $("#titleLarge").css('background-color', '#555'); 
}); 
$("#titleHover").mouseout(function(){ 
    $("#titleLarge").css('background-color', 'transparent'); 
}); 
$("#titleHover").click(function(){ 
    $("#userMenu").animate({ 
     height: "192px", 
    }, 250, function() { 
     // Animation complete. Display form and swap out arrow. 
     $('#loginForm').css('visibility', 'visible'); 
     $("#titleLarge").css('background-color', 'transparent'); 
     $("#titleHover").unbind('mouseenter').unbind('mouseout'); 
     //Use my sweep function to swap in values for IE 
     $('html').click(function() { 
      //Hide the login, animate menu up and swap back in down arrow. 
      $('#loginForm').css('visibility', 'hidden'); 
      $("#userMenu").animate({ 
       height: "64px", 
      }, 250, function() { 
       $("#titleHover").mouseenter(function(){ 
        $("#titleLarge").css('background-color', '#333'); 
       }); 
       $("#titleHover").mouseout(function(){ 
        $("#titleLarge").css('background-color', 'transparent'); 
       }); 
      }); 
      if ($('#password').attr('value') == '') { 
       $('#password').hide(); 
       $('#fakepassword').show(); 
      }      
     });      
     $('#userWrap').click(function(event){ 
      event.stopPropagation(); 
     }) 
    }); 
}); 

而IE调试的图像:

enter image description here

中到底是什么^^^

+0

至少这是一个越来越小的祸根...... http://www.reddit.com/r/technology/comments/lxn6s/internet_explorer_falls_below_50_market_share_mark/ –

+0

HTML,请。究竟哪个版本的IE有问题? – Blazemonger

+0

@EricJ。 “越来越小”? :-) – Blazemonger

回答

1

您可以使用jQuery清除内联样式。这是一个大锤,对于这种情况可能太大了。

$('.myDiv').attr('style','') 
0

好吧,在今天晚上用Jquery做了很多很多练习之后,我通过给脚本添加了更多的逻辑来解决了我的问题。我遇到的问题与我的脚本如何伪装成IE替代品有关。它将占位符文本分配给该值并更改颜色。通过将相同的逻辑添加到输入和输出的假输入中,我能够解决这个问题。在将来,我想我只是想用文本的占位符!简单的逻辑:如果用户还没有关注或键入任何内容,占位符是可见的。应该在每个浏览器中工作!这些都是显示/隐藏功能现在:

$("#fakepassword").focus(function(){ 
    $('#fakepassword').hide(); 
    $('#password').show(); 
    $('#password').focus(); 
}); 
$("#password").focusout(function(){ 
    if ($('#password').attr('value') == $('#password').attr('placeholder')) { 
     $('#password').hide(); 
     $('#fakepassword').show(); 
    } 
});