Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.09.2009, 21:42
Новичок на форуме
Отправить личное сообщение для x00xer Посмотреть профиль Найти все сообщения от x00xer
 
Регистрация: 27.09.2009
Сообщений: 9

Выделение текста при использовании слайдера
Здравствуйте.

Необходимо на сайт установить слайдер (ползунок), при перемещении ползунка выделяется близ лежащий текст, а при не аккуратном перемещении может выделиться и вся страница
полазив по сети нашел способ запретить выделять текст
$('body').select(function() { return false; });
способ решает проблему в ИЕ и Сафари.
Но вот мозилка не поддается .. как можно побороть мозилку ?
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 27.09.2009, 22:25
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Перехватывайте mousedown на ползунке и прерывайте его дальнейшее всплытие. Работать будет везде, без дополнительных телодвижений.
Ответить с цитированием
  #3 (permalink)  
Старый 28.09.2009, 09:19
Новичок на форуме
Отправить личное сообщение для x00xer Посмотреть профиль Найти все сообщения от x00xer
 
Регистрация: 27.09.2009
Сообщений: 9

мне казалось я так и делаю ?
//drag and drop
            var slide = {
                drag: function(e) {
						// $('body').select(function() { return false; });
                    var d = e.data;
                    var l = Math.min(Math.max(e.pageX - d.pageX + d.left, ps.limited.min), ps.limited.max);

                    $sliderProcess(slider, completedbar, l);
                    //push two parameters: 1st:percentage, 2nd: event
                    ps.onChanging(l / ps.limited.max, e);

					// document.body.onselectstart = function() { return false }
                },
                drop: function(e) {
						// $('body').select(function() { return false; });	
                    slider.removeClass(ps.sliderHover);
                    //push two parameters: 1st:percentage, 2nd: event
                    ps.onChanged(parseInt(slider.css('left')) / ps.limited.max, e);

                    $().unbind('mousemove', slide.drag).unbind('mouseup', slide.drop);
                }
            };

            if (ps.enable) {
                //bind events
                slider.bind('mousedown', function(e) {
                    var d = {
                        left: parseInt(slider.css('left')),
                        pageX: e.pageX
                    };
	$('body').select(function() { return false; }); // ВОТ ТУТ!
                    $(this).addClass(ps.sliderHover);
                    $().bind('mousemove', d, slide.drag).bind('mouseup', d, slide.drop);
                });
            }
Ответить с цитированием
  #4 (permalink)  
Старый 28.09.2009, 11:10
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://javascript.ru/tutorial/events...ovka-vsplytiya

Сообщение от x00xer
мне казалось я так и делаю ?
И отменять mousedown надо, а не select.
Ответить с цитированием
  #5 (permalink)  
Старый 28.09.2009, 11:45
Новичок на форуме
Отправить личное сообщение для x00xer Посмотреть профиль Найти все сообщения от x00xer
 
Регистрация: 27.09.2009
Сообщений: 9

Странное дело
сделал как из туториала

slider.bind('mousedown', function(e) {
                    var d = {
                        left: parseInt(slider.css('left')),
                        pageX: e.pageX
                    };
					// $('body').select(function() { return false; });
					event = e || window.event // кросс-браузерно

				    if (event.stopPropagation) {
				        // Вариант стандарта W3C:
				        event.stopPropagation()
				    } else {
				        // Вариант Internet Explorer:
				        event.cancelBubble = true
				    }
                    $(this).addClass(ps.sliderHover);
                    $().bind('mousemove', d, slide.drag).bind('mouseup', d, slide.drop);
                });


Но все равно в мозилке не работает
Ответить с цитированием
  #6 (permalink)  
Старый 28.09.2009, 11:55
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

ХЗ че там в этих ваших jquery'ях происходит. У меня на pure-js все работает.
Ответить с цитированием
  #7 (permalink)  
Старый 28.09.2009, 22:31
Новичок на форуме
Отправить личное сообщение для x00xer Посмотреть профиль Найти все сообщения от x00xer
 
Регистрация: 27.09.2009
Сообщений: 9

похоже нашел что в JQ есть нечто вот такое
event.preventDefault();
что скорее всего приостаавливает всплытие :-) по крайне й мере то работает :-).
Спасибо.
Классный у Вас тут сайт, поселюсь вероятно я теперь у Вас :-)
Ответить с цитированием
  #8 (permalink)  
Старый 29.09.2009, 03:06
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

preventDefault
Ответить с цитированием
  #9 (permalink)  
Старый 29.09.2009, 07:45
Новичок на форуме
Отправить личное сообщение для x00xer Посмотреть профиль Найти все сообщения от x00xer
 
Регистрация: 27.09.2009
Сообщений: 9

Я уже прочитал этот туториал. Теперь становится понятней
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не срабатывает hover при использовании в div IE 6.0 AlexMak (X)HTML/CSS 5 14.05.2009 18:26
Появление текста при наведении курсора на ссылку Александра Элементы интерфейса 1 11.05.2009 00:22
Подскажите как убрать часть текста при нажатии на кномпу или гиперссылку. potkin Общие вопросы Javascript 6 10.10.2008 07:55
Проблема в document.write при использовании setInterval() GOll Общие вопросы Javascript 21 06.10.2008 17:38
Firefox: перехватить соббытие при перетаскивании текста no_alex Общие вопросы Javascript 9 21.08.2008 18:02