Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.02.2019, 18:41
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Почему теряет фокус?
Добрый вечер. Упрощённо разметка выглядит так:
<table class="widefat fixed striped tags">
	<tbody id="singular-atts-list">
		<tr class="column-row">
			<td class="column-drag"><i class="dashicons dashicons-editor-justify"></i></td>
			<td class="column-label">shirina</td>
			<td class="column-value"><div class="attr-new"><input type="text" /></div><span>Удалить</span></td>
			<td class="column-measure">см</td>
		</tr>
	</tbody>
</table>

И есть три обработчика:
$('body').on('keyup', '#singular-atts-list .attr-new input', function() {
    // некий код
});
$(document).on('click', '#singular-atts-list td span', function() {
	// некий код
});
$('body').on('focusout', '#singular-atts-list td', function() {
	// некий код
});

Не понимаю, почему при нажатие по span (событие click ), у меня выполняется код из focusout?
Ответить с цитированием
  #2 (permalink)  
Старый 19.02.2019, 08:34
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Янковиц
почему при нажатие по span (событие click ), у меня выполняется код из focusout?
У меня не выполняется...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('body').on('keyup', '#singular-atts-list .attr-new input', function() {
		alert(3);
	});
	$(document).on('click', '#singular-atts-list td span', function() {
		alert(1);
	});
	$('body').on('focusout', '#singular-atts-list td', function() {
		alert(2);
	});
});
</script>
</head>
<body>
<table class="widefat fixed striped tags">
	<tbody id="singular-atts-list">
		<tr class="column-row">
			<td class="column-drag"><i class="dashicons dashicons-editor-justify"></i></td>
			<td class="column-label">shirina</td>
			<td class="column-value"><div class="attr-new"><input type="text" /></div><span>Удалить</span></td>
			<td class="column-measure">см</td>
		</tr>
	</tbody>
</table>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 19.02.2019, 11:31
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

ksa,
Если сначала кликнуть на инпут, а потом на спан, то срабатывает только alert(2);
Ответить с цитированием
  #4 (permalink)  
Старый 19.02.2019, 11:52
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Сообщение от Dilettante_Pro
Если сначала кликнуть на инпут, а потом на спан, то срабатывает только alert(2);
Думаю дело в alert.

Сообщение от ksa
У меня не выполняется
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('body').on('keyup', '#singular-atts-list .attr-new input', function() {
		console.log(3);
	});
	$(document).on('click', '#singular-atts-list td span', function() {
		console.log(1);
	});
	$('body').on('focusout', '#singular-atts-list td', function() {
		console.log(2);
	});
});
</script>
</head>
<body>
<table class="widefat fixed striped tags">
	<tbody id="singular-atts-list">
		<tr class="column-row">
			<td class="column-drag"><i class="dashicons dashicons-editor-justify"></i></td>
			<td class="column-label">shirina</td>
			<td class="column-value"><div class="attr-new"><input type="text" /></div><span>Удалить</span></td>
			<td class="column-measure">см</td>
		</tr>
	</tbody>
</table>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не определяется втарая переменная? Арман Общие вопросы Javascript 3 09.04.2011 11:14
Почему это работает? (инклуд JS в JS) Василий Б. Общие вопросы Javascript 4 11.06.2010 12:41
Оставить фокус в поле Andrej_2 Общие вопросы Javascript 4 15.06.2009 13:15
Как убрать фокус с селекта в IE6? Shurik_ Общие вопросы Javascript 2 05.11.2008 17:14
Как передать фокус флешке на странице? dArky Общие вопросы Javascript 3 10.08.2008 01:03