2010-11-24 3 views
2

Hey, ich habe gerade in jsFiddle rumgemacht und versucht, eine einfache Drag & Drop zu machen. Ich habe mich nicht darum gekümmert, den Offset usw. zu bekommen, also sobald Sie klicken, zentriert sich um Ihre Maus. Wenn ich mit der Maus nach unten gehe, gebe ich false zurück, von dem ich dachte, dass es die Art von "Geist" stoppen würde. Es hat nicht. Ich fokussiere mich auf den Körper mit der Maus, nur für den Fall, dass es das ist, aber es hat auch nicht geholfen.JavaScript: Stoppen Sie die Auswahl eines ziehbaren Elements

Also im Grunde ist meine Frage, wie kann ich die Auswahl von Elementen stoppen? Sie können die Geige hier finden: http://jsfiddle.net/Wolfy87/HY2u4/

Jede Hilfe wäre sehr willkommen. Vielen Dank.

EDIT: Ich habe es gerade in Safari getestet und es ist in Ordnung, bis jetzt scheint es nur Firefox zu sein.

Antwort

1

Problem behoben. Es stellt sich heraus, dass ich die Onmousedown- und OnSelectStart-Funktionen einstellen muss. Ich nehme an, das ist das gleiche wie onmousedown='...' im Tag platzieren. Wie auch immer, es ist jetzt behoben. Gehe einfach auf die Geigenseite.

Dies ist im Grunde der Code, der es behoben hat.

$('div.draggable').attribute().onselectstart = function() { 
    return false; 
} 

$('div.draggable').attribute().onmousedown = function() { 
    return false; 
} 

Es stoppt die Standardaktion der Auswahl des Elements als Text in Firefox und IE.

3
jQuery.fn.extend({ 
    disableSelection : function() { 
    this.each(function() { 
     this.onselectstart = function() { return false; }; 
     this.unselectable = "on"; 
     jQuery(this).css('-moz-user-select', 'none'); 
    }); 
    } 
}); 

//How to use: 
$('div.draggable').disableSelection(); 

Soulution ohne jQuery:

function disableSelection(target){ 
    if (typeof target.onselectstart!="undefined") //IE route 
    target.onselectstart=function(){return false} 
    else if (typeof target.style.MozUserSelect!="undefined") //Firefox route 
    target.style.MozUserSelect="none" 
    else //All other route (ie: Opera) 
    target.onmousedown=function(){return false} 
    target.style.cursor = "default" 
} 

gefunden auf:
Is there a way to make text unselectable on an HTML page?

+0

Sorry, aber ich bin mit jQuery nicht. Es ist meine eigene Bibliothek. Aber gutes Konzept, stecke es in ein Plugin. – Olical

+0

ich habe eine soulution ohne jQuery – Floyd

+0

Danke dafür, +1. Ich denke, ich werde bei mir bleiben, weil ich es besser verstehe. Und es hat einen für IE, einen für den Rest. Eher als IE, Firefox und der Rest. – Olical