Показать сообщение отдельно
  #1 (permalink)  
Старый 25.08.2011, 02:57
Интересующийся
Отправить личное сообщение для inferno3 Посмотреть профиль Найти все сообщения от inferno3
 
Регистрация: 25.08.2011
Сообщений: 11

Не работает display: block под IE
Собственно вот код:
Код:
<style>
.sdan{
	display:none;
}
</style>

<form action="index.php" name="sort" method="post">
<script language="javascript">

if(document.getElementsByClassName == undefined) { 
   document.getElementsByClassName = function(cl) { 
      var retnode = []; 
      var myclass = new RegExp('\\b'+cl+'\\b'); 
      var elem = this.getElementsByTagName('*'); 
      for (var i = 0; i < elem.length; i++) { 
         var classes = elem[i].className; 
         if (myclass.test(classes)) { 
            retnode.push(elem[i]); 
         } 
      } 
      return retnode; 
   } 
}; 
//фиксим ClassName под IE

var IE='\v'=='v'; //проверяю IE ли это
if(IE) {//если да
	function r() {//не отрабатывает дисплей блок в ие
	    var elements = document.getElementsByClassName('sdan');
	    if(document.getElementById('cb').checked){
			for (i = 0; i < elements.length; i++) {
	        elements[i].style.display = 'block';
	    }}else{for (i = 0; i < elements.length; i++) {
	        elements[i].style.display = 'none';
	    }}
	}
}else{


function r() {
	    var elements = document.getElementsByClassName('sdan');
	    if(document.getElementById('cb').checked){
			for (i = 0; i < elements.length; i++) {
	        elements[i].style.display = 'table-row';
	    }}else{for (i = 0; i < elements.length; i++) {
	        elements[i].style.display = 'none';
	    }}
	}
}
function red() {//этот код работает нормально!!!!
	    var elements = document.getElementsByClassName('postdate');
	    if(document.getElementById('cb1').checked){
			for (i = 0; i < elements.length; i++) {
	        elements[i].style.backgroundColor = '#F16969';
	    }}else{for (i = 0; i < elements.length; i++) {
	        elements[i].style.backgroundColor = '';
	    }}
	}	
	</script>
<input type="checkbox" id="cb" onclick="r()" > Показать все заказы <br> <input type="checkbox" id="cb1" onclick="red()" > Подсветить просроченные <br> </form>
Ну что table-row под IE работать не станет это понятно,
но чтобы block ...

По умолчанию класс "sdan" - display: none;
Если изменить "sdan" на display: block то скрипт со второго клика по чекбоксу начинает работать, правда криво как-то. С помощью этого скрипта нужно показать скрытые строки в таблице.
Собственно сабж.

Последний раз редактировалось inferno3, 25.08.2011 в 03:07.
Ответить с цитированием