Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.07.2009, 14:16
Аспирант
Отправить личное сообщение для Logo Посмотреть профиль Найти все сообщения от Logo
 
Регистрация: 15.03.2008
Сообщений: 91

Как снять фокус со всех элементов?
Необходимо снять фокус с элементов на странице, на которые он установлен, "очистить фокус". Как это сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 02.07.2009, 14:19
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Кликни по документу.
Ответить с цитированием
  #3 (permalink)  
Старый 02.07.2009, 14:41
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Фокус, он на то и фокус, что может находится только в одном элементе в конкретный момент времени.
Ответить с цитированием
  #4 (permalink)  
Старый 02.07.2009, 14:54
Аспирант
Отправить личное сообщение для Logo Посмотреть профиль Найти все сообщения от Logo
 
Регистрация: 15.03.2008
Сообщений: 91

Сообщение от Kolyaj Посмотреть сообщение
Фокус, он на то и фокус, что может находится только в одном элементе в конкретный момент времени.
Да, но если фокус с предыдущего снимается в результате метода focus() на следующем, событие blur предыдущего не срабатывает
См. код. Когда кликаешь на втором селекте предыдущий не закрывается.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<style type="text/css">
.simstyle-drop {display:none}
/********/
.simstyle-box {border:1px dashed red; display:inline-block; position:relative; margin:0 2px; cursor:pointer}
.simstyle-drop {position:absolute; top:100%; left:0; width:100%; border:1px solid #00f}
.simstyle-label {background:#aaf; margin-right:10px}
.simstyle-but {position:absolute; width:10px; height:10px; background:#f00; top:0; margin-left:100%; left:-10px}
.simstyle-drop span {display:block; zoom:1; background:#fff; width:100%}
.simstyle-drop .sel {background:#faa;}
</style>
<script type="text/javascript">
$(function() {
	a=$('select')
	for(i=0; i<a.length; i++) {
	   	new selectClass(a[i]);
	}
});

function selectClass(select) {
	$(select).css({'position' : 'absolute', 'left' : '-2000px'})
	this.box = $(select).wrap('<span class="simstyle-box"></span>').parent()
	$(this.box).append('<span class="simstyle-label"></span><span class="simstyle-but"></span><span class="simstyle-drop"></span>')
	this.drop = $(this.box).find('.simstyle-drop')
	this.select = select
	var self = this
	var i
	var a
	a = $(select).find('option')
	for (i=0; i<a.length; i++) {
		$(this.drop).append('<span>'+$(a[i]).text()+'</span>')
	}	
	$(this.box).find('.simstyle-label').text( $(this.box).find('option:selected').text() )
	$(this.box).find('.simstyle-label, .simstyle-drop span').attr('unselectable', 'on').css({'-khtml-user-select':'none', '-mox-user-select':'none', 'user-select':'none'})
		
	this.dodrop = function() {
		$(self.drop).show()
	}
	this.doundrop = function() {
		$(self.drop).hide()
	}	
	this.sel = function(i) {		
		$(this.select).find('*').attr('selected', '')
		$(this.select).find(':eq('+i+')').attr('selected', 'selected')
		$(this.box).find('.simstyle-label').html( $(this.select).find(':selected').text())
		self.doundrop()
	}
		
	
	$(this.box).mousedown( function() {$(self.select).focus(); return false})
	$(this.select).focus( function() {self.dodrop()})
	$(this.select).blur( function() {self.doundrop()})
	$(this.drop).find('span').hover(function() {$(this).addClass('sel')},  function() {$(this).removeClass('sel')})
	$(this.drop).find('span').mousedown(function() {self.sel(  $(self.drop).find('span').index(this) ); return false})		
}
</script>
</head>
<body>
Текст 
<form>
<div>
Это
<select id="MySelect">
	<option value="1">Раз</option>
    <option value="2">Два</option>
    <option value="three">Три</option>
    <option value="for">Четыре</option>
    <option value="5"> Пять</option>
    <option value="VI">Шесть</option>
</select>
селект

<select id="MySelect">
	<option value="1">Раз</option>
    <option value="2">Два</option>
    <option value="three">Три</option>
    <option value="for">Четыре</option>
    <option value="5"> Пять</option>
    <option value="VI">Шесть</option>
</select>
</div>
</form>
Текст
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 02.07.2009, 15:01
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от B~Vladi
Кликни по документу.
Скриптом.
Ответить с цитированием
  #6 (permalink)  
Старый 02.07.2009, 15:41
Аспирант
Отправить личное сообщение для Logo Посмотреть профиль Найти все сообщения от Logo
 
Регистрация: 15.03.2008
Сообщений: 91

Не помогает blur() не вызывается.
Ответить с цитированием
  #7 (permalink)  
Старый 02.07.2009, 15:54
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Ну тогда пробегайся по формам и сам его вызывай. Есть массив форм и их элементов. Дело 3-ех строчек
Ответить с цитированием
  #8 (permalink)  
Старый 02.07.2009, 23:53
Аспирант
Отправить личное сообщение для Logo Посмотреть профиль Найти все сообщения от Logo
 
Регистрация: 15.03.2008
Сообщений: 91

Да, пришлось так и сделать, $('select').blur(). Правда при большом колличестве селектов это наверняка будет тормозить.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как присвоить текст строке состояния для всех браузеров? Tend Общие вопросы Javascript 4 14.05.2009 16:38
Как обработать несколько элементов подряд? vladymyrk jQuery 1 07.01.2009 20:33
Как убрать фокус с селекта в IE6? Shurik_ Общие вопросы Javascript 2 05.11.2008 17:14
Как передать фокус флешке на странице? dArky Общие вопросы Javascript 3 10.08.2008 01:03
Разным элементам input - разное форматирование. Как? eclipse (X)HTML/CSS 1 25.10.2007 13:55