2015-12-13 15 views
0

Я использую решение mousedown/mouseup для навигации по клику и перетаскиванию, но если наведите курсор мыши на ссылку и перетащите ее, она активирует ссылку при отпускании клика.Предотвратить событие щелчка при перетаскивании с помощью мышки/вниз

Как отключить функцию щелчка при перетаскивании?

Вот что я получил:

jQuery(document).ready(function($) { 

    $(".main-container").mousedown(function(e) { 
     e.preventDefault(); 
     down = true; 
     x = e.pageX; 
     y = e.pageY; 
     top = $(this).scrollTop(); 
     left = $(this).scrollLeft(); 
     $(event.toElement).one('click', function(e) { 
     }); 
    }); 

    $("body").mousemove(function(e) { 
     if (down) { 
      var newX = e.pageX; 
      var newY = e.pageY; 

      //console.log(y+", "+newY+", "+top+", "+(top+(newY-y))); 

      $(".main-container").scrollTop(top - newY + y); 
      $(".main-container").scrollLeft(left - newX + x); 
     } 
    }); 

    $("body").mouseup(function(e) { 
     down = false; 
     $(event.toElement).one('click', function(e) { 
     }); 
    }); 
}); 

Благодарности

ответ

0

Это, кажется, сделать трюк:

jQuery(document).ready(function($) { 

var x, y, top, left, down; 

$(".main-container").mousedown(function(e) { 
    e.preventDefault(); 
    down = true; 
    x = e.pageX; 
    y = e.pageY; 
    top = $(this).scrollTop(); 
    left = $(this).scrollLeft(); 
    timestamp = new Date().getTime(); 
}); 

$("body").mousemove(function(e) { 
    if (down) { 
     var newX = e.pageX; 
     var newY = e.pageY; 

     $(".main-container").scrollTop(top - newY + y); 
     $(".main-container").scrollLeft(left - newX + x); 
    } 
}); 

$("body").mouseup(function(e) { 
    down = false; 
}); 

$(".main-container").click(function(event) { 
    var interval = 350; 
    var timestamp2 = new Date().getTime(); 
    if ((timestamp2 - timestamp) > interval) { 
     return false; 
    } 
}); 

}); 

 Смежные вопросы

  • Нет связанных вопросов^_^