Sto facendo una funzione che crea al volo un div. Vorrei rendere il div "draggabile" quindi uso questo codice:
codice:
var titlebar = document.createElement('div');
if(window.addEventListener){ // Mozilla, Netscape, Firefox
titlebar.addEventListener('mousedown', startDrag, false);
titlebar.addEventListener('mouseup', stopDrag, false);
titlebar.name = name;
} else { // IE
titlebar.attachEvent('onmousedown', startDrag);
titlebar.attachEvent('onmouseup', stopDrag);
titlebar.name = name;
}
mentre nella funzione startDrag recupero il parametro "name" così:
codice:
function startDrag(e) {
if (!e) var e = window.event;
name = (e.target) ? e.target.name : e.srcElement.name;
var win = document.getElementById(name);
//etc etc
}
Ora, mentre su Firefox funziona egregiamente, su IE name mi risulta undefined.
La cosa strana è che lo stesso identico codice invece funziona su un'altra funzione (al div aggiungo un bottone per "chiudere" il div)
codice:
var btn = document.createElement('button');
if(window.addEventListener){ // Mozilla, Netscape, Firefox
btn.addEventListener('click', closeWin, false);
btn.name = name;
} else { // IE
btn.attachEvent('onclick', closeWin);
btn.name = name;
}
e la funzione closeWin è questa:
codice:
function closeWin(e) {
if (!e) var e = window.event;
name = (e.target) ? e.target.name : e.srcElement.name;
var win = document.getElementById(name);
document.body.removeChild(win);
}
che funziona egregiamente sia su FF che su IE.
Cos'è che mi sfugge? :master: