identyfikacja diva z atrybutem onclick

Wszystko związane ze skryptami JS, DHTML itd.
zenon13
Posty: 14
Rejestracja: 23 lut 2010, 14:06:27
Płeć: Niewybrana
User Agent: Firefox Windows 1680x1050

identyfikacja diva z atrybutem onclick

Post autor: zenon13 »

Nie zamieszczam kodu postaram się opisać mój problem.
tworzę dynamicznie taką strukturkę

Kod: Zaznacz cały

<div id = "blok" >
    <div id = "1">
        <span>...</span>
        <span>...</span>
    </div>
    <div id = "2">
        <span>...</span>
        <span>...</span>
    </div>
    .
    .
</div> 
a następnie przypisuję zdarzenie onclick() do div- ów z numerkami id=1,2...
Problem polega na tym, że właściwość evt.target wskazuje na span, który się
akurat kliknęło. Problem rozwiązałem odwołując się przez parentNode ale nie
wiem dlaczego się tak dzieje
eider
Posty: 1276
Rejestracja: 12 cze 2009, 08:09:47
Płeć: Mężczyzna
User Agent: Safari Windows 1280x1024
Kontakt:

Re: identyfikacja diva z atrybutem onclick

Post autor: eider »

Lepije pkaż kod, może gdzies zrobiłeś błąd (np. literówkę)
zenon13
Posty: 14
Rejestracja: 23 lut 2010, 14:06:27
Płeć: Niewybrana
User Agent: Firefox Windows 1680x1050

Re: identyfikacja diva z atrybutem onclick

Post autor: zenon13 »

kod jest dość spory i może trochę zagmatwany ale... ten fragment jest w obsłudze request

Kod: Zaznacz cały

 var deliveryDiv = document.getElementById("delivery");
deliveryDiv.innerHTML = "";
var tempDelivery;

var idDelivery = new Array;
for (var j = 6; j < child_order.length; j++) {
        var child_delivery = child_order[j].childNodes;
        idDelivery[j-6] = child_order[j].getAttribute("id");
        tempDelivery= document.createElement("div");
        tempDelivery.setAttribute("id",idDelivery[j-6]);
        tempDelivery.onclick = aaa;
        var nazwadostawcy_node;
        var iloscwmagazynie_node;
        for (var i = 0; i< child_delivery.length; i++) {
                if (child_delivery[i].nodeName == "nazwadostawcy") { 
                    nazwadostawcy_node = child_delivery[i]; 
                } else if (child_delivery[i].nodeName == "iloscwmagazynie") { 
                        iloscwmagazynie_node = child_delivery[i];
                }
        }
        tempIlosc = document.createElement("span");
        tempMiejsce = document.createElement("span");
       &nbsp;tempIlosc.innerHTML = "Ilość w magazynie " + iloscwmagazynie_node.firstChild.nodeValue + "&nbsp;&nbsp;&nbsp;";
        tempMiejsce.innerHTML = "Dostarczone z " + nazwadostawcy_node.firstChild.nodeValue + "<br />";                                                        
        tempDelivery.appendChild(tempIlosc);
        tempDelivery.appendChild(tempMiejsce);
        deliveryDiv.appendChild(tempDelivery);
 
a to funkcyjka do testowania event

Kod: Zaznacz cały

function aaa(evt){
var thisBox;
if (!evt){
        evt = event;
        thisBox = evt.srcElement;
}    else {
        thisBox = evt.target;
}

alert('Klinąłeś div ' + thisBox.parentNode.id + 'z zamówienia' + theidorder);
} 
div delivery jest zdefiniowany w body

---- EDIT ----

No dobra rozwiązałem zagadkę i jest mi głupio jakie to było oczywiste. Wydaje się, że najprostsze rozwiązanie do przypisanie ujemnych wartości z-index do spanów.
ODPOWIEDZ