Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Объясните пожалуйста разницу между "e" и "event" (https://javascript.ru/forum/misc/61360-obyasnite-pozhalujjsta-raznicu-mezhdu-e-i-event.html)

AciDWarrioR 15.02.2016 09:56

Объясните пожалуйста разницу между "e" и "event"
 
Всем привет!
Вопрос отражен в теме. Гуглил и как таковой ответ не увидел. Можете объяснить на пигмейском, да еще желательно какой нибудь примерчик, если их разница может быть как-то использована.

Dilettante_Pro 15.02.2016 11:09

AciDWarrioR,
А можно ваши примеры с вариантами использования?

AciDWarrioR 15.02.2016 11:21

Dilettante_Pro,
Я не знаю насколько это вам будет полезно. В общем, я использую библиотеку OpenLayers3. И ситуация следующая: мне надо сделать кнопку удаления элементов, которые нарисовал пользователь. Я реализовал по гайдам, но дело в том, что когда я удалил элемент и хочу заново что-нибудь нарисовать, вылетает куча ошибок, которые иногда приводят к тому, что ломается карта. Вот эту ошибку я не могу найти и исправить. На всех тематических форумах молчат.
Реализовал сейчас, что кнопка удаляет все элементы, и то, бывает иногда и так, что вылетают ошибки. Так вот, был ещё пример где заместо "e" использовался "event". Вот я и хочу понять это может ли как то повлиять на решение и когда нужно использовать "e" и "event". Примеры:
Мой пример:
$('.imgLine').click(function(){
					clearCustomInteraction();
					$(this).addClass('active');
					map.addInteraction(lineDraw);
					lineDraw.on('drawEnd', function(e){
					});
				});

А вот пример с которого я думал забрать часть:
draw.on('drawend', function (event) {
    featureID = featureID + 1;
    event.feature.setProperties({
        'id': featureID,
    })
 })


Ссылки:
OpenLayers API
Мой вопрос на stackexchange
Этот же вопрос на русском

рони 15.02.2016 11:36

Цитата:

Сообщение от AciDWarrioR
"e" и "event"

считайте что разницы нет, ошибки лучше смотреть конкретно ... скорее всего дело в видимости или в алгоритме ... возможно в клике нужно не назначать а тригерить
var lineDraw = ...;
 lineDraw.on('drawend', function(event) {
     featureID = featureID + 1;
     event.feature.setProperties({
         'id': featureID,
     })
 })


 $('.imgLine').click(function() {
     clearCustomInteraction();
     $(this).addClass('active');
     map.addInteraction(lineDraw);
     lineDraw.trigger('drawend')
 });

AciDWarrioR 15.02.2016 11:42

рони,
Спасибо за ответ.
В плане поиска ошибки на конкретном примере - это ссылки на мои вопросы, там конкретно. А примеры кода, что я скинул, проблема не в этом блоке кода. Я просто скинул для примера.
Почему не могу найти ошибку, потому что она возникает где-то далеко внутри самой библиотеки. Понять и найти, что там не так, очень сложно (по крайней мере для меня).

Dilettante_Pro 15.02.2016 11:43

AciDWarrioR,
В заголовке описания функции имена параметров - это имена внутренних переменных функции, поэтому их можно обзывать по-любому.
Пример из https://learn.javascript.ru/obtaining-event-object

<input type="button" value="Нажми меня" id="elem">

<script>
  elem.onclick = function(event) {
    // вывести тип события, элемент и координаты клика
    alert(event.type + " на " + event.currentTarget);
    alert(event.clientX + ":" + event.clientY);
  }
</script>


А вот то же самое без event совсем
<input type="button" value="Нажми меня" id="elem">

<script>
  elem.onclick = function(nnn) {
    // вывести тип события, элемент и координаты клика
    alert(nnn.type + " на " + nnn.currentTarget);
    alert(nnn.clientX + ":" + nnn.clientY);
  }
</script>


А есть еще глобальный объект window.event

AciDWarrioR 15.02.2016 11:46

Dilettante_Pro,
Даже так)))
Спасибо за ответ.
Буду копать значит глубже, не заморачиваясь на это)

Dilettante_Pro 15.02.2016 11:59

AciDWarrioR,
при событии детали события записывается в window.event который передаётся первым аргументом в обработчик.
А внутри функции-обработчика названия - ваше дело. Я думаю, использование e и event в данном контексте - чисто мнемонические привычки


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