2011-11-07 23 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(); 
    } 
});