JackShcherbakov
@JackShcherbakov

Что значит этот код?

Пожалуйста, объясните этот код. Книга опять подводит плохими объяснениями.
var linkVar = {
	message: "Привет от ссылки"
};

var pVar = {
	message: "Привет от абзаца"
};

function showMessage(event) {
	alert(event.data.message);
}

$("a").on("mouseover", linkVar, showMessage);
$("p").on("click", pVar, showMessage);
  • Вопрос задан
  • 247 просмотров
Решения вопроса 1
XXXXPro
@XXXXPro
Fullstack Web developer
Судя по всему, книгу распознавали с помощью OCR, и символ кавычек " заменился на цифру 1.
Реально должно быть вот что:
var linkVar = {message: "Привет от ссылки"};
var pVar = {message: "Привет от абзаца"};
function showMessage(evt) {
alert(evt.data.message);
}
$("a").on("mouseover", linkVar, showMessage);
$("p").on("click", pVar, showMessage);

А происходит тут вот что: объявляется две переменных (представляющих собой хеш из одного элемента), потом объявляется функция, вызов которой с помощью jQuery-метода on вешается на обработчик события onmouseover для ссылки и onclick щелчка для тега p (абзаца). Причем метод on еще создает замыкание,которое связывает функцию обработчик с определенной переменной.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Standalong
Логика такова:
По событию mouseover( при наведении маркера мыши на ссылку(“a”)), создаётся объект события и передаётся в функцию showMessage.
В данном конкретном случае объект события назвали evt. При его создании в него записываются данные data(объект linkVar). Далее с этим объектом события evt выполняется функция showMessage, которая извлекает конкретные данные (evt.data.message - значение свойства message из evt ), после чего выводится сообщение с помощью alert на экран.
Та же логика работает и при клике мыши на абзаце(‘p’), только в качестве данных иcпользуется объект pVar.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы