Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите разобраться со скриптом (https://javascript.ru/forum/misc/56952-pomogite-razobratsya-so-skriptom.html)

Валерий1996 11.07.2015 23:02

Помогите разобраться со скриптом
 
Помогите разобраться со скриптом новичку

1)Посоветуйте какие нибудь учебники по ява-скрипту и, может быть, по верстке, для совсем новичков, чтоб хорошо расписаны азы были, и, если можно, Русскоязычные.

2)Проверьте, правильно ли я трактую данный код (и, если можно, укажите на ошибки в трактовке):

// обращаемся к селектору с класом "preview_news" вызываем функцию on при срабатывании события "mouseover" для тега "h2" , вызываем анонимную функцию	
				$('.preview_news').on('mouseover', 'h2', function() {
// обращаемся к текущему свойству css и ставим параметр "text-decoration" "underline"				
					$(this).css({'text-decoration':'underline'});
// обращаемся к селектору с класом "preview_news" вызываем функцию "on"  по событию "mouseout" для тега "h2", вызываем анонимную функцию
				});
				$('.preview_news').on('mouseout', 'h2', function() {
// для текущего css свойства выставляем значение "text-decoration"	"none"				
					$(this).css({'text-decoration':'none'});
				});
// обращаемся к селектору с класом "preview_news" вызываем функцию "on" по событию "click" для тега h2 и для div с класом "preview-news-img", вызываем анонимную функцию	
				$('.preview_news').on('click', 'h2, div.preview-news-img', function() {
// Переменная содержимое "content" получила значение атрибут "data-url" 
					content = $(this).attr('data-url');
// обращемся к селектору с идентефикатором "preload" ставим анимаю появления продолжительностью 2 сек.
					$('#preload').fadeIn(200);
// вызываем функцию "getContent" , параметром которой переменная  "content"
					getContent(content);
// Вызываем функцию History с методом"pushState" с параметром "state" "1" метод  rand: значением которого являеться функция  "Math.random()", котороя возвращает случайное число с плавающей точкой, если возвраем  "null" (ноль), то складываем содержимое переменых "lang" + символ амперсанд + "content"
					History.pushState({state:1,rand:Math.random()}, null, "?"+lang+"&"+content);
				});
:help: :help: :help:

kostyanet 13.07.2015 14:38

Это не ява-скрипт.

Валерий1996 13.07.2015 17:41

Цитата:

Сообщение от kostyanet (Сообщение 379072)
Это не ява-скрипт.

, и что же тогда? Не c++ часом?

laimas 13.07.2015 18:58

Цитата:

Сообщение от Валерий1996
// обращаемся к селектору с класом "preview_news" вызываем функцию on при срабатывании события "mouseover" для тега "h2" , вызываем анонимную функцию
$('.preview_news').on('mouseover', 'h2', function() {


Нет. Вообще-то .on() называется методом, и в данном случае, он не вызывается....

Это означает - методом .on() определить "делегирование" обработки события onmouseover на элементе H2 его родительскому элементу с классом "preview_news". Ну и в других случаях подобное.

$(this).css({'text-decoration':'underline'}); - это не обязательно текущее свойство, да это вообще и не свойство, такого стиля элементу может быть и не определено на текущий момент, это или изменение существующего стиля, если есть, или добавление.

А вообще так лучше не писать - методично для каждого случая, а так:

$('.preview_news').on('mouseover', 'h2', function() {
    $(this).css({'text-decoration':'underline'});
})
.on('mouseout', 'h2', function() {
    $(this).css({'text-decoration':'none'});
})
.....


либо:

$('.preview_news').on('mouseover mouseout', 'h2', function(e) { //или использовать метод .hover()
    $(this).css({'text-decoration': e.type=='mouseover' ? 'underline' : 'none'});
})
.....


То есть можно сразу определить родителю обработку множества событий.

kostyanet 13.07.2015 20:07

Цитата:

Сообщение от Валерий1996
и что же тогда? Не c++ часом?

Это не с++, это язык jquery, а вы думаете будто бы ява-скрипт.

laimas 13.07.2015 20:39

Цитата:

Сообщение от kostyanet
это язык jquery

Нет такого языка программирования.

kostyanet 13.07.2015 21:30

Цитата:

Сообщение от laimas (Сообщение 379217)
Нет такого языка программирования.

Такого языка программирования нет, а язык jquery есть и цитата в первом сообщении вполне доказывает.

laimas 13.07.2015 21:41

Цитата:

Сообщение от kostyanet
а язык jquery есть

Нет такого языка, дурочку не надо включать. JQ, это Javascript, написанный на Javascript, выполняется в рамках тега определенного, то есть Javascript, а не VBS или иное.


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