Javascript IE正在强制内联样式覆盖我的Jquery魔力?
好的,我在我的网站上有一个整洁的小登录表单,我喜欢占位符而不是标签!大家都知道,微软,即使知道它拥有巨大的资源,也拒绝发布与CSS3 HTML5完全兼容的浏览器。他们甚至非常贪婪,不允许老用户升级到9,除非他们有WindowsVista/7 所以我使用了我在另一篇文章中读到的假密码字段技巧,但我遇到了一个问题!当我试图使fakepassword字段出现并隐藏密码时,IE似乎在元素上强制使用某种伪造的内联样式,而不允许它隐藏 代码如下:Javascript IE正在强制内联样式覆盖我的Jquery魔力?,javascript,jquery,forms,internet-explorer,Javascript,Jquery,Forms,Internet Explorer,好的,我在我的网站上有一个整洁的小登录表单,我喜欢占位符而不是标签!大家都知道,微软,即使知道它拥有巨大的资源,也拒绝发布与CSS3 HTML5完全兼容的浏览器。他们甚至非常贪婪,不允许老用户升级到9,除非他们有WindowsVista/7 所以我使用了我在另一篇文章中读到的假密码字段技巧,但我遇到了一个问题!当我试图使fakepassword字段出现并隐藏密码时,IE似乎在元素上强制使用某种伪造的内联样式,而不允许它隐藏 代码如下: //This function hides our fake
//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调试的图像:
最糟糕的是^^^可以使用jQuery清除内联样式。这是个大锤子,可能对这个案子来说太大了
$('.myDiv').attr('style','')
可以使用jQuery清除内联样式。这是个大锤子,可能对这个案子来说太大了
$('.myDiv').attr('style','')
在今晚对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();
}
});
在今晚对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();
}
});
至少这是一个越来越小的祸害。。。HTML,谢谢。你到底对哪个版本的IE有问题?@EricJ。“越来越小”?:-)您如何构建表单?这是什么把戏?什么是技巧链接plz?@mblase75:我是双底片的粉丝;-)至少这是一个越来越小的祸害。。。HTML,谢谢。你到底对哪个版本的IE有问题?@EricJ。“越来越小”?:-)您如何构建表单?这是什么把戏?什么是技巧链接plz?@mblase75:我是双底片的粉丝;-)