Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.01.2013, 06:30
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Аналог :checked для ИE7-8 ?
Можно ли без скрипта (через <v:f ) или иным образом,
- Создать для ИE7-8 - аналог псевдокласса :checked ?
Ответить с цитированием
  #2 (permalink)  
Старый 25.01.2013, 08:38
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от Deff
аналог псевдокласса :checked
Есть еще селекторы атрибутов...

<style>
*[checked] {
   border: 1px solid red;
}
</style>
<input type='checkbox' checked />
<input type='checkbox' />
<input type='checkbox' checked />
Ответить с цитированием
  #3 (permalink)  
Старый 25.01.2013, 14:14
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

ksa,
Cенкс за идею, но оно не меняется от смены checked
Поставил span рядом, посколь бордеры у FF и Хроме на checkbox не ставятся
<style>
input[checked="true"]+span,
input[checked="checked"]+span{
   border: 1px solid red;
}
</style>
<input type='checkbox' checked="true" />
<span>aaa</span>
<input type='checkbox' />
<span>bbb</span>
<input type='checkbox' checked="checked" />
<span>ccc</span>

Последний раз редактировалось Deff, 25.01.2013 в 15:50.
Ответить с цитированием
  #4 (permalink)  
Старый 25.01.2013, 14:47
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от Deff
но оно не меняется от смены checked
да вот же...
Ответить с цитированием
  #5 (permalink)  
Старый 25.01.2013, 16:48
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

<style type="text/css">
	/* Для ИЕ7 все как обычно */
	input[type="checkbox"] {
		checked: expression(this.className=this.className.replace(/(?:(?:^|\\s)checked(\\s|$)|$)/i, this.checked?' checked$1':'$1'));
	}

	/* Правило оформления чекнутого для ИЕ7 и ИЕ8 */
	input[type="checkbox"].checked {
		border: 1px solid red;
	}
	/* Для всех остальных браузеров */
	input[type="checkbox"]:checked {
		border: 1px solid red;
	}

</style>

<script type="text/javascript">
	/* Для ИЕ8 этот дуратский скрипт */
	if (document.attachEvent && window.Element && window.Element.prototype.querySelectorAll) {
		window.attachEvent('onload', function() {
			function test(e) {
				if(e.nodeName === "INPUT" && e.type === "checkbox") {
					e.className=e.className.replace(/(?:(?:^|\s)checked(\s|$)|$)/i, e.checked?' checked$1':'$1');
				}
			}
			document.attachEvent('onclick', function(){test(window.event.srcElement||{})});
			for(var i = 0, e = document.querySelectorAll('input[type="checkbox"]'); i < e.length; i++) {
				test(e[i]);
			}
		});
	}
</script>

<input type="checkbox" checked />

<input type="checkbox" />

<input type="checkbox" checked />
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #6 (permalink)  
Старый 25.01.2013, 17:03
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

devote,

чот у меня в ИЕ7 не работает(ставицо но не убирается) - (*в ИЕ8 - норма
<!doctype html>
<html>
<head>
 <title>IE7 {CSS2: auto}</title>

<style type="text/css">
	/* Для ИЕ7 все как обычно */
	input[type="checkbox"]{
		checked: expression(this.className=this.className.replace(/(?:(?:^|\\s)checked(\\s|$)|$)/i, this.checked?' checked$1':'$1'));
	}

	/* Правило оформления чекнутого для ИЕ7 и ИЕ8 */
	input[type="checkbox"].checked  + span{
		border: 1px solid red;
	}
	/* Для всех остальных браузеров */
	input[type="checkbox"]:checked  + span{
		border: 1px solid red;
	}

</style>

<script type="text/javascript">
	/* Для ИЕ8 этот дуратский скрипт */
	if (document.attachEvent && window.Element && window.Element.prototype.querySelectorAll) {
		window.attachEvent('onload', function() {
			function test(e) {
				if(e.nodeName === "INPUT" && e.type === "checkbox") {
					e.className=e.className.replace(/(?:(?:^|\s)checked(\s|$)|$)/i, e.checked?' checked$1':'$1');
				}
			}
			document.attachEvent('onclick', function(){test(window.event.srcElement||{})});
			for(var i = 0, e = document.querySelectorAll('input[type="checkbox"]'); i < e.length; i++) {
				test(e[i]);
			}
		});
	}
</script>
</head>

<body>

<input type='checkbox' checked="true" />
<span>aaa</span>
<input type='checkbox' />
<span>bbb</span>
<input type='checkbox' checked="checked" />
<span>ccc</span>
<input type="checkbox" checked/>
<span>ddd</span>





</body>
</html>

Последний раз редактировалось Deff, 25.01.2013 в 17:23.
Ответить с цитированием
  #7 (permalink)  
Старый 25.01.2013, 17:21
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Deff
чот у меня в ИЕ7 не работает(ставицо но не убирается)
очень странно, у меня пашет.. Для ИЕ7 должен срабатывать этот код:
checked: expression(this.className=this.className.replace(/(?:(?:^|\\s)checked(\\s|$)|$)/i, this.checked?' checked$1':'$1'));

А если отключить это:
<!-- Compliance patch for Microsoft browsers -->
 <!--[if lt IE 9]><script src="http://ie7-js.googlecode.com/svn/trunk/lib/IE9.js"></script><![endif]-->
просто проверь
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #8 (permalink)  
Старый 25.01.2013, 17:23
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от devote
<!-- Compliance patch for Microsoft browsers --> <!--[if lt IE 9]><script src="http://ie7-js.googlecode.com/svn/trunk/lib/IE9.js"></script><![endif]-->
Соррь - забыл - сейчас
Ответить с цитированием
  #9 (permalink)  
Старый 25.01.2013, 17:28
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

А ну понятно, это просто ИЕ плохо работает с плюсами (+) в селекторах
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #10 (permalink)  
Старый 25.01.2013, 17:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

devote,
Все наоборот при отключении не работает и в 8
Оставил ток

<!-- Compliance patch for Microsoft browsers -->
<!--[if lt IE 9]><script src="http://ie7-js.googlecode.com/svn/trunk/lib/IE9.js"></script><![endif]-->

Работает в обоих (забыл я про скрипт-аналог для псевдоклассов)


<!doctype html>
<html>
<head>
 <title>IE7 {CSS2: auto}</title>

<!-- Compliance patch for Microsoft browsers -->
 <!--[if lt IE 9]><script src="http://ie7-js.googlecode.com/svn/trunk/lib/IE9.js"></script><![endif]-->

<style type="text/css">
	input[type="checkbox"]:checked  + span{
		border: 1px solid red;
	}
</style>


</head>

<body>

<input type='checkbox' checked="true" />
<span>aaa</span>
<input type='checkbox' />
<span>bbb</span>
<input type='checkbox' checked="checked" />
<span>ccc</span>
<input type="checkbox" checked/>
<span>ddd</span>


</body>
</html>

Ксать во фрейме не обслуживается скриптом - поэтому ток на странице

Последний раз редактировалось Deff, 25.01.2013 в 22:59.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установка цвета через функцию .css() сбрасывает цвет для :hover xintrea jQuery 4 18.08.2012 15:38
Модуль для web-to-print проекта Anton2507 Работа 0 29.07.2012 11:35
добавление стилей для множества элементов ??? Общие вопросы Javascript 7 14.06.2012 01:50
Некорректная работа get(set)Attribute в IE для элементов img back to back Internet Explorer 15 09.06.2012 16:52