Косяк JS в IE
Здравствуйте!
Помогите пожалуйста, не могу разобраться, почему вот такой скриптик прикрасно работает во всех браузерах кроме IE.... <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <style> .sticker{ background-color:Red; width:145px; height:150px; position:absolute; z-index:15; Top:1px; } .stitl{ width:100%; height:30px; position:absolute; cursor:move; -width:100%; background-color:Green; } .txta{ margin-left:5px; margin-Top:30px; background: none; border: none; font-family:Times; color:#916d00; } </style> <script type="text/javascript"> function drag_object( evt, obj ) { evt = evt || window.event; obj.clicked = true; obj.mousePosX = evt.clientX; obj.mousePosY = evt.clientY; if( evt.preventDefault ) evt.preventDefault(); else evt.returnValue = false; document.onmouseup = function(){ obj.clicked = false } document.onmousemove = function( evt ) { evt = evt || window.event; if( obj.clicked ) { posLeft = !obj.style.left ? obj.offsetLeft : parseInt( obj.style.left ); posTop = !obj.style.top ? obj.offsetTop : parseInt( obj.style.top ); mousePosX = evt.clientX; mousePosY = evt.clientY; obj.style.left = posLeft + mousePosX - obj.mousePosX + 'px'; obj.style.top = posTop + mousePosY - obj.mousePosY + 'px'; obj.mousePosX = mousePosX; obj.mousePosY = mousePosY; } } } function setcookie( name, value, timeout ) { timeout = timeout || 1000*60*60*24; expires = (new Date((new Date).getTime() + timeout)).toUTCString(); document.cookie = name + '=' + value + ';expires=' + expires; } function createSticker() { var elDiv = document.createElement('div'); elDiv.id = 'sticker'; elDiv.className = 'sticker'; document.body.appendChild(elDiv); elSpn = document.createElement('span'); elDiv.appendChild(elSpn); elSpn.id = 'stitl'; elSpn.className = 'stitl'; elSpn.onmousedown=function(){drag_object(true, this.parentNode);}; } </script> </head> <body> <div class=sticker><span class=stitl onmousedown="drag_object(event, this.parentNode)"></span></div> <a href="#" onclick="createSticker()" >createSticker</a> </body> </html> Заранее благодарю... |
Что не работает? Ошибки какие-то или что не так?
|
Суть скрипта в том что по нажатию на ссылку создаётся динамический div, в нём, ещё один, для указания области захвата для перетаскивания обоих!
Т.Е. как окно и шапка окна(принцип тот же)... Во всех браузерах норм работает, а в IE создаёт эти элементы, но перетакивание не работает! Хотя и запускает drag_object() и передаёт в неё необходимые переменные... Вся соль в том, что в том же IE Если не создавать обьект динамически, а просто прописать его в теле, то тоже все работает!!!:blink: |
elSpn.onmousedown=function(event){drag_object(event || window.event, this.parentNode);}; |
нда, а ларчик просто открывался.... )
VERY :thanks: !!! |
Часовой пояс GMT +3, время: 07:10. |