var elem = document.createElement("div"), style = elem.style, userSelectProp = "userSelect" in style && "userSelect"; if (!userSelectProp) { $.each("Moz Webkit Khtml O".split(" "), function(i, v) { var vendorProp = v + "UserSelect"; if ( vendorProp in style ) { userSelectProp = vendorProp; return false; } }); } var selectStart = !userSelectProp && "onselectstart" in elem && "selectstart.mouse"; elem = null; $.fn.extend({ disableSelection: function() { if (unselectableProp) { this.css(userSelectProp, "none"); } else { this.find( "*" ).andSelf().attr( "unselectable", "on" ); } if (selectStart) { this.bind(selectStart, function() { return false; }); } return this; }, enableSelection: function() { if (unselectableProp) { this.css(userSelectProp, ""); } else { this.find( "*" ).andSelf().attr( "unselectable", "off" ); } if (selectStart) { this.unbind(selectStart); } return this; } });