Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 15.10.2014, 17:39
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Вот тебе функция f:
function f(event) {
alert(this);
}
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #22 (permalink)  
Старый 15.10.2014, 17:42
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Boolean_Type
console.log(this)
Ах ты хитрая жопа!!! Значит, в неинлайн ты логируешь тупо this в теле обработчика, в инлайн вызываешь какую-то левую? f()

И в чем тут логика?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #23 (permalink)  
Старый 15.10.2014, 17:43
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Вот инлайн обработчик. Что блядь в нем не так? Куда там this не показывает?
<button onclick="console.log(this)">Button</button>
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #24 (permalink)  
Старый 15.10.2014, 17:44
Аспирант
Отправить личное сообщение для Boolean_Type Посмотреть профиль Найти все сообщения от Boolean_Type
 
Регистрация: 02.02.2014
Сообщений: 48

Сообщение от danik.js Посмотреть сообщение
Да блядь жеж! А при не-инлайн не надо чтоли? Ты троллишь чтоли? Покажи как ты в неинлайн обработчике вызываешь функцию f и не передаешь this, и в функции f this указывает не на window. Жду

Эй, а кому же я предыдущий пример печатал??? Вот кусок из него:
<button id="l">тут НЕ инлайн</button>
<script type="text/javascript">
//ещё раз, об этом Костянет писал тоже: здесь в вызове не передаётся this, но в ф-ции обработчики контекст устанавливается правильно, метод не инлайновый
document.getElementById('l').onclick = function () { //НИ ХЕРА НЕ ПЕРЕДАЮ
     alert(this); //ОХРЕНЕТЬ, this - это [object HTMLButtonElement]
}
</script>
Ответить с цитированием
  #25 (permalink)  
Старый 15.10.2014, 17:44
Аспирант
Отправить личное сообщение для Boolean_Type Посмотреть профиль Найти все сообщения от Boolean_Type
 
Регистрация: 02.02.2014
Сообщений: 48

Сообщение от danik.js Посмотреть сообщение
Вот инлайн обработчик. Что блядь в нем не так? Куда там this не показывает?
<button onclick="console.log(this)">Button</button>
Да, тут показывает, ты же его явно передал. А в моём вопросе не показывал, ибо я не передал его явно
Ответить с цитированием
  #26 (permalink)  
Старый 15.10.2014, 17:45
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Boolean_Type
Да что Вы говорите.
И чем отличается обработчик от функции? Функция, когда ее назвали обработчиком, перестает быть функцией? Приобретает новые свойства?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #27 (permalink)  
Старый 15.10.2014, 17:47
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Boolean_Type
Да, тут показывает, ты же его явно передал
Смотрим твой код:
Сообщение от Boolean_Type
document.getElementById('l').onmouseover = function (e) {
console.log(this)
}
А ну немедленно перестань передавать this в console.log() !
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #28 (permalink)  
Старый 15.10.2014, 17:49
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Boolean_Type
//НИ ХЕРА НЕ ПЕРЕДАЮ
Ты идиот. Что и куда тут можно передать? Ты записываешь функцию в свойство onclick
Онологично как я задаю атрибут onclick с телом функции.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #29 (permalink)  
Старый 15.10.2014, 17:51
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Покажи, где тут разничия в поведении?
1)  <a onclick =                "       alert(this)      ">
2)    a.onclick = function() {       alert(this)      };
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #30 (permalink)  
Старый 15.10.2014, 17:52
Аспирант
Отправить личное сообщение для Boolean_Type Посмотреть профиль Найти все сообщения от Boolean_Type
 
Регистрация: 02.02.2014
Сообщений: 48

Сообщение от danik.js Посмотреть сообщение
Ах ты хитрая жопа!!! Значит, в неинлайн ты логируешь тупо this в теле обработчика, в инлайн вызываешь какую-то левую? f()

И в чем тут логика?
danik.js, я не успеваю за твоими ответами)
Вот именно, я не понимал, почему при вызове левой f() контекст не передаётся. Я думал - раз событие, так this во всех ф-циях будет показываться, которые запущены этим событием. Ошибался.

Последний раз редактировалось Boolean_Type, 15.10.2014 в 17:56.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите в замыкании универсальной функции для обработчиков событий addEventListener iis_ Events/DOM/Window 6 30.01.2014 01:09
Посоветуйте как улучшить код для работы с history api [ jquery + js + history api ] Geo Ваши сайты и скрипты 0 12.01.2014 00:41
Программный вызов событий для конкретных элементов iNfantry jQuery 9 31.01.2012 15:21
HTA-приложение для радио Pianorama Magneto Ваши сайты и скрипты 42 22.01.2012 08:34
trigger() работает только для событий jQuery? slavaiv jQuery 4 20.11.2011 14:41