Javascript IE正在强制内联样式覆盖我的Jquery魔力?

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

好的,我在我的网站上有一个整洁的小登录表单,我喜欢占位符而不是标签!大家都知道,微软,即使知道它拥有巨大的资源,也拒绝发布与CSS3 HTML5完全兼容的浏览器。他们甚至非常贪婪,不允许老用户升级到9,除非他们有WindowsVista/7

所以我使用了我在另一篇文章中读到的假密码字段技巧,但我遇到了一个问题!当我试图使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调试的图像:


最糟糕的是^^^

可以使用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:我是双底片的粉丝;-)