Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.04.2015, 15:58
Новичок на форуме
Отправить личное сообщение для kefirko Посмотреть профиль Найти все сообщения от kefirko
 
Регистрация: 23.01.2014
Сообщений: 5

onclick="" против $('div').click(function(){})
http://js.do/code/56492
В примере два блока. На блок A "навешиваю" событие после загрузки документа с помощью JQuery:
$(document).ready(function(){
	$('#a').click(function(){
		alert($(this).text());
	});
});

<div id="a">Блок A</div>

А на блок B "навешиваю" событие по старинке:
function click1(){
	alert($(this).text());
};

<div id="b" onclick="click1()">Блок B</div>

Подскажите пожалуйста. Почему для блока А все работает (alert показывает текст "Блок А"), а для блока В не работает (alert показывает пустой текст, а должен показать текст "Блок В").

Последний раз редактировалось kefirko, 10.04.2015 в 16:07.
Ответить с цитированием
  #2 (permalink)  
Старый 10.04.2015, 16:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от kefirko
алерт показывает пустой текст, а должен показать текст из блока
Если должен - значит покажет! Может просто время его еще не пришло...
Ответить с цитированием
  #3 (permalink)  
Старый 10.04.2015, 16:07
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Как намек...

<!DOCTYPE html>
<html>
<head>
<script src='http://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>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
#a, #b {
	position: absolute; /* абсолютное позиционирование */
	width: 100px; /* ширина */
	height: 100px; /* высота */
}
#a {
	background-color: red;
	top: 100px;
}
#b {
	background-color: green;
	top: 250px;
}
</style>
<script type='text/javascript'>
$(function(){
	$('#a').click(function(){
		alert($(this).text());
	});
});
function click1(Obj){
	alert($(Obj).text());
};
</script>
</head>
<body>
	<div id="a">Блок A</div>
	<div id="b" onclick="click1(this)">Блок B</div>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 10.04.2015, 16:14
Новичок на форуме
Отправить личное сообщение для kefirko Посмотреть профиль Найти все сообщения от kefirko
 
Регистрация: 23.01.2014
Сообщений: 5

Спасибо, а можно какой-н популярный комментарий чтобы принцип понять? Почему вроде бы одно и тоже действие требует разной реализации?
Ответить с цитированием
  #5 (permalink)  
Старый 10.04.2015, 16:24
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от kefirko
вроде бы одно и тоже действие
Нет. Действия разные.
Это результат у этих действий должен быть одинаков.

Сообщение от kefirko
а можно какой-н популярный комментарий чтобы принцип понять?
Начать можно с этого
http://javascript.ru/tutorial/object/thiskeyword
Ответить с цитированием
  #6 (permalink)  
Старый 10.04.2015, 16:33
Новичок на форуме
Отправить личное сообщение для kefirko Посмотреть профиль Найти все сообщения от kefirko
 
Регистрация: 23.01.2014
Сообщений: 5

Спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS против jquery. Раскрасить четные строки eXtreme Общие вопросы Javascript 13 02.06.2015 14:46
Масштабирование против центрирования prowoke Общие вопросы Javascript 3 27.12.2012 14:40
Помогите с событием onclick="" lamer Элементы интерфейса 1 10.02.2012 09:20