Этот вопрос уже имеет ответ здесь:
У меня есть этот переключатель jQuery. Это хорошо работает.
- Go to the store
- Pick up dinner
- Debug crash
- Take a jog
$("li").toggle(
function () {
$(this).css({"list-style-type":"disc", "color":"blue"});
},
function () {
$(this).css({"list-style-type":"disc", "color":"red"});
},
function () {
$(this).css({"list-style-type":"", "color":""});
}
);
Проблема состоит в том, когда я делаю быстро нажатие, она выделила текст в нем. Существует ли способ мешать тексту быть выделенным?
Я пишу на iPhone, а вдали от стола, но быстрый Google появился на этой странице: Отключить выбор текста с jQuery .
Отредактировано В ответ на комментарий «Dead Link» (от @Herb Caudill). Хотя исходная ссылка, действительно, мертвая, оказывается из-за реструктуризации сайта (а не удаления), а новое местоположение для статьи можно найти здесь: http://chris-barr.com/index .php / intract / disable_text_selice_with_jquery /
и код, приведенный в этой статье, воспроизводится ниже:
$(function(){
$.extend($.fn.disableTextSelect = function() {
return this.each(function(){
if($.browser.mozilla){//Firefox
$(this).css('MozUserSelect','none');
}else if($.browser.msie){//IE
$(this).bind('selectstart',function(){return false;});
}else{//Opera, etc.
$(this).mousedown(function(){return false;});
}
});
});
$('.noSelect').disableTextSelect();//No text selection on elements with a class of 'noSelect'
});
//function to be reused later
function clearSelection() {
var sel ;
if(document.selection && document.selection.empty){
document.selection.empty() ;
} else if(window.getSelection) {
sel=window.getSelection();
if(sel && sel.removeAllRanges)
sel.removeAllRanges() ;
}
}
$('p').click(clearSelection);