Показать сообщение отдельно
  #19 (permalink)  
Старый 15.10.2014, 17:27
Аспирант
Отправить личное сообщение для Boolean_Type Посмотреть профиль Найти все сообщения от Boolean_Type
 
Регистрация: 02.02.2014
Сообщений: 48

Сообщение от danik.js Посмотреть сообщение
Ну вы укурки ))) Два укурка ))

А теперь выдохни и посмотри на код из Контекст this для событий .
Ниче не напоминает ?
Или перестать укуриваться ) Ибо нет никакой разницы инлайн-не инлайн. Повторяю для накуренных: JavaScript не завязан на HTML. Нет никакой разницы между функцией созданной из атрибута, и функцией, присвоенной в js коде.
Причём тут укуриваться, чё за манера?
Вот именно, напоминает, ибо ты написал то же самое, где вызов идёт не в контексте элемента, а контексте Window. Об этом и писал мне отвечающий.
Сообщение от danik.js Посмотреть сообщение
нет никакой разницы инлайн-не инлайн.
При инлайн надо явно передавать this в вызове!) Ты же сам видишь.
<button id="l" onclick="f();">инлайн-метод, не передаю this</button>
<button onclick="f(this);">инлайн-метод, передаю this</button>
<script type="text/javascript">
function f(obj_this){
    alert(this);
    alert(obj_this);
}
//здесь в вызове не передаётся this, но в ф-ции обработчики контекст устанавливается правильно, метод не инлайновый
document.getElementById('l').onmouseover = function (e) {
     console.log(this)
}
</script>

Накурился я или нет, а пример налицо. При инлайн-вызове надо просто this передавать, я запомню. И видна эта this будет лишь ф-ции, в кот-ую передаётся, а вот это говнище работать нормально не будет:
button2.onclick = function(event) {
   f(event);
};

т.к. внутри обработчика вызывается левая ф-ция в контексте Window. Вот это будет:
button2.onclick = function(event) {
   alert(this); //требуем this прямо в обработчике, а не посредством левой ф-ции
};

danik.js, меня отпустило
Спасибо всем отписавшимся, вот бы на сайтах, пхп посвящённых, так же оперативно и с примерами отвечали...
Ответить с цитированием