Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.09.2012, 05:11
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Как отменить выделения
Хочу отменить возможность выделений дочерних элементов у родителя

...
parent.onmousedown = parent.onselectstart = function() {
  return false;
}


но при этом исключить это правило для некоторых дочерних элементов.


Можно было бы назначить функцию выше на каждый элемент индивидуально, но я так не хочу.

Как это сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 15.09.2012, 05:16
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Вот пример

<!DOCTYPE HTML>
<html>
<head>
</head>
<body onmousedown="return false" onselectstart="return false">
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#0f0; width:200px; margin:4px;" id="on2">Разрешить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#0f0; width:200px; margin:4px;" id="on1">Разрешить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
</body>
</html>

Последний раз редактировалось dmitry111, 15.09.2012 в 05:22.
Ответить с цитированием
  #3 (permalink)  
Старый 15.09.2012, 05:18
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от dmitry111
<body onmousedown"function() {return:false;}">
<body onmousedown="return false;">
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #4 (permalink)  
Старый 15.09.2012, 05:26
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

devote,
да, писал сходу, методом проб и ошибок

Последний раз редактировалось dmitry111, 15.09.2012 в 05:47.
Ответить с цитированием
  #5 (permalink)  
Старый 15.09.2012, 05:27
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Так же хотел бы узнать, зачем использовать onselectstart? Ведь ie понимает onmousedown.
Ответить с цитированием
  #6 (permalink)  
Старый 15.09.2012, 06:02
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от dmitry111
Ведь ie понимает onmousedown.
наверно для того что бы ссылки в тексте работали... иначе переход по ссылкам перестанет работать
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #7 (permalink)  
Старый 15.09.2012, 07:34
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

спасибо!

а как исключить эти события для некоторых вложенных элементов?
Ответить с цитированием
  #8 (permalink)  
Старый 15.09.2012, 15:17
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Ну хоть кто-нибудь.......
Ответить с цитированием
  #9 (permalink)  
Старый 16.09.2012, 09:37
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823



ну неужели нужно будет отменять функцию выделения у каждого элемента индивидуально??

У меня тысяча дочерних элементов, и только в двух нужно дать возможность выделять!

Мне надо 998 раз писать эту хрень :

...
child.onmousedown = child.onselectstart = function() {
  return false;
}



ХЕЕЕЕЕЛП!!!

Последний раз редактировалось dmitry111, 16.09.2012 в 09:41.
Ответить с цитированием
  #10 (permalink)  
Старый 16.09.2012, 10:07
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823


Сделал, работает:

<!DOCTYPE HTML>
<html>
<head>
</head>
<body onmousedown="return false" onselectstart="return false">
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#0f0; width:200px; margin:4px;" id="on2">Разрешить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#0f0; width:200px; margin:4px;" id="on1">Разрешить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
<div style="background:#f00; width:200px; margin:4px;">Запретить выделение</div>
  
  <script>
    document.getElementById("on2").onmousedown = function (event) {
    	event.stopPropagation();
    };      
    document.getElementById("on2").onselectstart = function (event) {
    	event.stopPropagation();	
    };
  </script>
  
    <script>
    document.getElementById("on1").onmousedown = function (event) {
    	event.stopPropagation();
    };      
    document.getElementById("on1").onselectstart = function (event) {
    	event.stopPropagation();	
    };
  </script>
  
</body>
</html>



Объясните почему работает?

event.stopPropagation() блокирует всплытие, а тут наоборот вроде как
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как сделать как в JQ? faforty Общие вопросы Javascript 8 14.11.2011 01:35
Как узнать, присутствует ли в окне полоса прокрутки или нет? возжаждавший Элементы интерфейса 6 12.03.2010 23:00
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
Как отменить прокрутку при клике Alekson jQuery 1 30.03.2009 20:53