buduję metodę przeciągnij i upuść, używając zapytania -onmousedown prowadzi do -onmousemove (drag) następnie -onmouseup (usuwa powiązanie onmousemove)przeciągnij i upuść, aby zapobiec podświetlaniu niezgrabnych elementów?
Problem polega na tym, domyślnie przeglądarka rozpocząć podkreślając onmousemove, który pływa po całym strony i anuluje wydarzenie, czyniąc go bezużytecznym. każdy pomysł, jak zapobiec podświetlaniu, bo preventDefault wydaje się nie działać. tu jest mój kodu (tak, jest bardzo zaniedbany, przepraszam!)
$(".middleRow").mousedown(function(){
calculateSelection();
$('body').append('<div class="messageDrag" style="display:block">'+numSelected+'<div style="font-size: 18px">messages</div></div>');
$(document).mouseup(function(){
$('.messageDrag').fadeOut(500);
setTimeout(function(){
$('.messageDrag').remove();
}, 500);
$(document).unbind();
})
$(document).mousemove(function(e){
e.preventDefault();
var x = e.pageX;
var y = e.pageY;
$(".messageDrag").css("left", x-49);
$(".messageDrag").css("top", y-49);
});
});
Nie chcę całkowicie usuwać podświetlania, tylko podczas tego przeciągania. ale mogę rzucić to css poprzez zapytanie jako takie, czy ma to pełną obsługę przeglądarki? – roozbubu
Tak, powinno to dotyczyć większości współczesnych przeglądarek (stąd wszystkie przedrostki dostawców, nawet ms), można zrobić '$ (element) .css ({// css powyżej});' po przeciągnięciu jest inicjowany i ustawić je na ' auto' po zakończeniu upuszczania. –
hmm ... to chyba nie zapobiega podświetlaniu, po prostu pozbywa się go wizualnie. większym problemem był akt podświetlania (gdy użytkownik zaczyna przeciągać nad tekstem, pojawia się podświetlenie lub jeśli na początku przeciąga nad nim, anuluje przeciągnięcie i zaczyna podświetlać) i rujnuje przeciąganie i upuszczanie. – roozbubu