21.06.2011, 12:29
|
Интересующийся
|
|
Регистрация: 31.05.2011
Сообщений: 21
|
|
setAttribute для IE
привет.
код
newOption.setAttribute('ondragstart', 'delElem(this, event)')
в IE не работает.
подскажите, как надо написать, чтобы IE нормально это обрабатывал.
|
|
21.06.2011, 12:31
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
|
|
21.06.2011, 12:56
|
Интересующийся
|
|
Регистрация: 31.05.2011
Сообщений: 21
|
|
сорри, не понял.
так
newOption.attachEvent("ondragstart", function() { delElem(this, event) })
тоже не работает. тут все дело в синтаксисе, а без примера сам будешь вечность пробовать...
для более ясного понимания:
при перетаскивании линка из одного пункта меню (обычный <ul>) в другой (пользовательский <select>) при отпускании кнопки мыши (ondrop) этот пункт меню должен добавиться в <select> со своими аргументами. в числе которых кроме прочих и ondragstart для удаления потом этого пункта из пользовательского меню.
Сейчас в ФФ работает, а вот в ИЕ:
Последний раз редактировалось anlov, 21.06.2011 в 13:11.
|
|
21.06.2011, 14:28
|
|
Модератор
|
|
Регистрация: 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>
|
|
21.06.2011, 15:08
|
Интересующийся
|
|
Регистрация: 31.05.2011
Сообщений: 21
|
|
статью прочитал. еще до. понял, что такое ИЕ не обрабатывает, хотя ясно указано, что вторым аргументом в setAttribute идет строка. через свойство тоже пробовал:
newOption.ondragstart=function(){delElem(this, event)};
в ФФ работает, в ИЕ - нет.
|
|
21.06.2011, 15:10
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
До 8го ИЕ, на сколько я помню, не знает событие ondragstart.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
|
|
21.06.2011, 15:31
|
Интересующийся
|
|
Регистрация: 31.05.2011
Сообщений: 21
|
|
проверяю на 8-ке - ничего...
|
|
21.06.2011, 15:41
|
|
Профессор
|
|
Регистрация: 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.
|
|
21.06.2011, 15:53
|
Интересующийся
|
|
Регистрация: 31.05.2011
Сообщений: 21
|
|
да я на dragstart и не жаловался. мне по drop'у надо создавать в выпадающем списке новый <option> с
ondragstart="dragElem(this, event)"
и, судя по всему, именно здесь ИЕ жалуется на неправильный аргумент
|
|
21.06.2011, 16:55
|
|
Профессор
|
|
Регистрация: 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, так как браузер определяет можно ли в этот элемент что то сбросить, когда по нему ползёт мышь.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
|
|
|
|