Tôi đang xây dựng một phương pháp kéo và thả, sử dụng truy vấn -onmousedown dẫn đến -onmousemove (kéo) sau đó -onmouseup (unbinds onmousemove)kéo và thả, ngăn chặn làm nổi bật khó xử?
vấn đề là, giá trị mặc định trình duyệt bắt đầu đánh dấu onmousemove, mà bay khắp nơi trang và hủy sự kiện, khiến nó không sử dụng được. bất kỳ ý tưởng làm thế nào để ngăn chặn làm nổi bật, cho preventDefault dường như không được làm việc. đây là mã của tôi (có nó rất cẩu thả, xin lỗi!)
$(".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);
});
});
tôi không muốn xóa hoàn toàn làm nổi bật, chỉ trong trạng thái kéo này. nhưng tôi có thể ném css này thông qua truy vấn như vậy, điều này có hỗ trợ trình duyệt đầy đủ? – roozbubu
có nó sẽ bao gồm hầu hết các trình duyệt hiện đại (do đó tất cả các tiền tố của nhà cung cấp, thậm chí là ms), bạn có thể làm '$ (phần tử) .css ({// css above});' khi kéo được khởi tạo và đặt chúng thành ' tự động' sau khi thả xong. –
hmm..nó không có vẻ để ngăn chặn làm nổi bật, chỉ cần loại bỏ nó trực quan. vấn đề lớn hơn là hành động làm nổi bật (khi người dùng bắt đầu kéo trên văn bản, đánh dấu xảy ra, hoặc nếu lúc đầu anh ta kéo nó, nó sẽ hủy kéo và bắt đầu làm nổi bật) và nó đang hủy hoại việc kéo và thả. – roozbubu