我建立一個拖放方法,使用查詢 -onmousedown 導致-onmousemove(阻力),然後-onmouseup(沒有綁定的OnMouseMove)拖放,防止尷尬突出顯示?
的問題是,瀏覽器默認開始突顯的OnMouseMove,其遍佈蒼蠅該頁面並取消該事件,使其無法使用。任何想法如何防止突出顯示,因爲preventDefault似乎沒有工作。這裏是我的代碼(是它非常馬虎,對不起!)
$(".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);
});
});
我不想完全刪除突出顯示,只在這個拖動狀態。但我可以通過查詢來拋出這個CSS,這是否具有完整的瀏覽器支持? – roozbubu 2012-03-09 01:53:58
是的,它應該覆蓋大多數現代瀏覽器(因此所有的供應商前綴,甚至毫秒),你可以做'$(element).css({//上面的css});'當拖動被初始化時,並將它們設置爲'自動'一旦下降完成。 – 2012-03-09 01:56:12
嗯..這似乎並沒有阻止突出顯示,只是在視覺上擺脫它。更大的問題是突出顯示的行爲(當用戶開始拖動文本,突出顯示,或者如果在開始時他拖過它,則取消拖動並開始突出顯示),並且它正在破壞拖放。 – roozbubu 2012-03-09 02:04:54