Javascript.RU

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

setAttribute для IE
привет.
код
newOption.setAttribute('ondragstart', 'delElem(this, event)')

в IE не работает.
подскажите, как надо написать, чтобы IE нормально это обрабатывал.
Ответить с цитированием
  #2 (permalink)  
Старый 21.06.2011, 12:31
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://javascript.ru/tutorial/events/comparison
Ответить с цитированием
  #3 (permalink)  
Старый 21.06.2011, 12:56
Интересующийся
Отправить личное сообщение для anlov Посмотреть профиль Найти все сообщения от anlov
 
Регистрация: 31.05.2011
Сообщений: 21

сорри, не понял.
так
newOption.attachEvent("ondragstart", function() { delElem(this, event) })
тоже не работает. тут все дело в синтаксисе, а без примера сам будешь вечность пробовать...

для более ясного понимания:
при перетаскивании линка из одного пункта меню (обычный <ul>) в другой (пользовательский <select>) при отпускании кнопки мыши (ondrop) этот пункт меню должен добавиться в <select> со своими аргументами. в числе которых кроме прочих и ondragstart для удаления потом этого пункта из пользовательского меню.
Сейчас в ФФ работает, а вот в ИЕ:

Цитата:
Ошибка на странице

неправильный аргумент
строка: 56
символ: 4
код: 0
URI: http://localhost:8505/index.php?id=22

Последний раз редактировалось anlov, 21.06.2011 в 13:11.
Ответить с цитированием
  #4 (permalink)  
Старый 21.06.2011, 14:28
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

В ie обработчики, добавленные через setAttribute, не работают. Да и, собственно, ни в одном браузере не обязаны. Вам скинули статью, почитайте. Для примера:

<div id="1">1</div>
<div id="2">2</div>

<script>
div1= document.getElementById("1");
div2= document.getElementById("2");

div1.setAttribute("onclick", "alert('hi')"); // работает в ff (и ещё где-нибудь, наверное), но не в ie
div2.onclick= function(){alert('hi')}; // работает везде
</script>
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #5 (permalink)  
Старый 21.06.2011, 15:08
Интересующийся
Отправить личное сообщение для anlov Посмотреть профиль Найти все сообщения от anlov
 
Регистрация: 31.05.2011
Сообщений: 21

статью прочитал. еще до. понял, что такое ИЕ не обрабатывает, хотя ясно указано, что вторым аргументом в setAttribute идет строка. через свойство тоже пробовал:
newOption.ondragstart=function(){delElem(this, event)};
в ФФ работает, в ИЕ - нет.
Ответить с цитированием
  #6 (permalink)  
Старый 21.06.2011, 15:10
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

До 8го ИЕ, на сколько я помню, не знает событие ondragstart.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #7 (permalink)  
Старый 21.06.2011, 15:31
Интересующийся
Отправить личное сообщение для anlov Посмотреть профиль Найти все сообщения от anlov
 
Регистрация: 31.05.2011
Сообщений: 21

проверяю на 8-ке - ничего...
Ответить с цитированием
  #8 (permalink)  
Старый 21.06.2011, 15:41
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

<!DOCTYPE html>
<html>
<head>
<script>
window.onload = function(){
	document.getElementById('drag').ondragstart = function(){
		console.log('start')
	}
}
</script>
</head>
<body>
<div style="position: absolute; background: black; top: 50px; left: 50px; width: 100px; height: 100px; border: 1px solid black;" id="drag"> reteas </div>
</body>
</html>

Вроде как работает, вообще я соврал Даже в старых ИЕ работает, по крайней мере так показывает Platform Preview для 7ки.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.

Последний раз редактировалось Nekromancer, 21.06.2011 в 15:45.
Ответить с цитированием
  #9 (permalink)  
Старый 21.06.2011, 15:53
Интересующийся
Отправить личное сообщение для anlov Посмотреть профиль Найти все сообщения от anlov
 
Регистрация: 31.05.2011
Сообщений: 21

да я на dragstart и не жаловался. мне по drop'у надо создавать в выпадающем списке новый <option> с
ondragstart="dragElem(this, event)"

и, судя по всему, именно здесь ИЕ жалуется на неправильный аргумент
Ответить с цитированием
  #10 (permalink)  
Старый 21.06.2011, 16:55
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Сообщение от anlov Посмотреть сообщение
да я на dragstart и не жаловался. мне по drop'у надо создавать в выпадающем списке новый <option> с
ondragstart="dragElem(this, event)"

и, судя по всему, именно здесь ИЕ жалуется на неправильный аргумент
<!DOCTYPE html>
<html>
<head>
<script>
window.onload = function(){
	var drag = document.getElementById('drag'), drop = document.getElementById('drop');
	drag.ondragstart = function(){
		console.log('start')
	}
	drop.ondrop = function(){
		console.log('drop')
		window.event.returnValue = false;
		return false
	}
	drop.ondragover = function(){
		console.log('over')
		window.event.returnValue = false;
		return false
	}
}
</script>
</head>
<body>
<img style="position: absolute; top: 50px; left: 50px; width: 100px; height: 100px;" id="drag" src="img.jpg">
<div style="position: absolute;  top: 150px; left: 50px; width: 150px; height: 150px; border: 1px solid black;" id="drop"> </div>
</body>
</html>

Событие drop, не работает без события dragover, так как браузер определяет можно ли в этот элемент что то сбросить, когда по нему ползёт мышь.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Ищу программиста для сотрудничества, ищу программиста для создания браузерной игры He3HaUKa Javascript под браузер 3 25.04.2011 20:53
Новая система управления сайтом Scripto CMS deepslam Ваши сайты и скрипты 38 31.01.2011 14:55
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31