Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.03.2011, 01:32
Кандидат Javascript-наук
Отправить личное сообщение для abc_ua Посмотреть профиль Найти все сообщения от abc_ua
 
Регистрация: 20.05.2010
Сообщений: 105

Проблема: Остановка всплытия событий (Firefox)
Помогите пожалуйста с кодом, в мозиле (3.5.16) не происходит остановка всплытия события, в остальных браузерах все нормально

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body onclick="alert('body')">
	<div onclick="dc()" style="width:100px; height:100px; background:#CC6600;"></div>
	<script>
		function dc() {
			alert('div');
			stop_bubbling(event);
		}
		function stop_bubbling(e) {
			e = e || window.event
			if (e.stopPropagation) e.stopPropagation();
			else e.cancelBubble = true;
		}
	</script>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 09.03.2011, 01:38
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Кто такой event в dc() ? Правильно window.event .
В фф его нет и не будет, у "остальных" его тоже быть не должно, но совместимость с ие, будь она неладна.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body onclick="alert('body')">
	<!--Зато event кроссбраузерно есть во встраиваемых обработчиках-->
	<div onclick="dc(*!*event*/!*)" style="width:100px; height:100px; background:#CC6600;"></div>
	<script>
		function dc(e) {
			alert('div');
			stop_bubbling(e);
		}
		function stop_bubbling(e) {
			if (e.stopPropagation) e.stopPropagation();
			else e.cancelBubble = true;
		}
	</script>
</body>
</html>
__________________
29375, 35

Последний раз редактировалось Aetae, 09.03.2011 в 01:41.
Ответить с цитированием
  #3 (permalink)  
Старый 09.03.2011, 02:22
Кандидат Javascript-наук
Отправить личное сообщение для abc_ua Посмотреть профиль Найти все сообщения от abc_ua
 
Регистрация: 20.05.2010
Сообщений: 105

а как назначить обработчик из скрипта?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>

<body>
	<div style="width:100px; height:100px; background:#CC6600;"></div>
	<script>
		$("body").click(function() {alert("body");});

		$("div").bind("click", function() {
			alert(this);
			stop_bubbling(this);
		});
		
		function stop_bubbling(element) {
			element.onclick = function(event) {
				event = event || window.event
				if (event.stopPropagation) event.stopPropagation();
				else event.cancelBubble = true;
			}
		}
	</script>
</body>
</html>


не работает
Ответить с цитированием
  #4 (permalink)  
Старый 09.03.2011, 02:26
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

С чего бы ему работать то, блин.
$("div").bind("click", function(e) {
            alert(this);
            stop_bubbling(e);
        });
        function stop_bubbling(event) {
                event = event || window.event
                if (event.stopPropagation) event.stopPropagation();
                else event.cancelBubble = true;
        }

Хотя в этом вашем унылом жкуери ни зуб ногой.
__________________
29375, 35

Последний раз редактировалось Aetae, 09.03.2011 в 02:28.
Ответить с цитированием
  #5 (permalink)  
Старый 09.03.2011, 02:28
Кандидат Javascript-наук
Отправить личное сообщение для abc_ua Посмотреть профиль Найти все сообщения от abc_ua
 
Регистрация: 20.05.2010
Сообщений: 105

спасибо, работает, буду разбираться

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>

<body>
	<div style="width:100px; height:100px; background:#CC6600;"></div>
	<script>
		$("body").click(function() {alert("body");});

		$("div").bind("click", function(e) {
			alert(this);
			stop_bubbling(e);
		});
		
		function stop_bubbling(e) {
			if (e.stopPropagation) e.stopPropagation();
            else e.cancelBubble = true;
		}
	</script>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при инициализации событий sms9 Events/DOM/Window 2 21.01.2010 22:14
Проблема со скриптом в Firefox ArmagedDance Events/DOM/Window 19 08.12.2009 15:32
Проблема с ЯваСкрипт в Mozilla Firefox 3 ScarHead Firefox/Mozilla 8 30.06.2009 16:55
Проблема закрытия окна (window.close()) в Mozilla и FireFox Гость AJAX и COMET 4 06.11.2008 19:22
Специфичная проблема в firefox Ufai Rock Общие вопросы Javascript 1 23.10.2008 16:55