Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   onclick="" против $('div').click(function(){}) (https://javascript.ru/forum/jquery/55025-onclick%3D-protiv-%24-%27div%27-click-function-%7B%7D.html)

kefirko 10.04.2015 15:58

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 показывает пустой текст, а должен показать текст "Блок В").

ksa 10.04.2015 16:02

Цитата:

Сообщение от kefirko
алерт показывает пустой текст, а должен показать текст из блока

Если должен - значит покажет! Может просто время его еще не пришло... ;)

ksa 10.04.2015 16:07

Как намек...

<!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>

kefirko 10.04.2015 16:14

Спасибо, а можно какой-н популярный комментарий чтобы принцип понять? Почему вроде бы одно и тоже действие требует разной реализации?

ksa 10.04.2015 16:24

Цитата:

Сообщение от kefirko
вроде бы одно и тоже действие

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

Цитата:

Сообщение от kefirko
а можно какой-н популярный комментарий чтобы принцип понять?

Начать можно с этого
http://javascript.ru/tutorial/object/thiskeyword

kefirko 10.04.2015 16:33

Спасибо.


Часовой пояс GMT +3, время: 13:21.