Показать сообщение отдельно
  #4 (permalink)  
Старый 04.09.2014, 12:07
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

Сообщение от Aetae Посмотреть сообщение
Чтоб не плодить для разных объектов лишних слушателей обычно делается так
Сообщение от Tek Посмотреть сообщение
По человечески это пишеться так:
var mDown = false;
b.onmousedown = function(){ mDown = true; };
b.onmousemove = function(){if(mDown ){}};
b.mouseup = function(){ mDown = false; };
Считаю, что это неправильный подход. Событие должно вешаться, когда его действительно нужно слушать и обрабатывать. ТС в данном плане мыслит правильно.

<button id="test">нажми меня, держи и таскай</button>
<span id="result"></span>
<script>
var button = document.getElementById('test'),
    result = document.getElementById('result');
function mousemove(e) {
    result.innerHTML = e.pageX + ', '+ e.pageY;
}
function mouseup() {
    button.removeEventListener('mousemove', mousemove);
    button.removeEventListener('mouseup', mouseup);
}

button.addEventListener('mousedown', function () {
    button.addEventListener('mousemove', mousemove);
    button.addEventListener('mouseup', mouseup);
});
</script>
Ответить с цитированием