W internecie znalazłem tak na prawdę dwa rozwiązania, a raczej podpowiedzi jednak nie mogę cały czas uzyskać swojego efektu.
Pierwsza było to, żeby funkcja miała inne nazwy (argumenty), u mnie to zawsze występuje, ale dla pewności jeden input po prostu wyświetla alert podczas gdy drugi odwołuje się do docelowej funkcji.
Drugą podpowiedź przedstawię po przedstawieniu kodu:
newRow.innerHTML = "<a href='#' class='editName'>"+ddList.ddElements[ddList.ddEl.id]+'</a>'; newRow.innerHTML += ' X:<input type="text" id="x'+ddList.ddEl.id+'" name="x'+ddList.ddEl.id+'" size=3 value=0>'; var xField = document.getElementById('x'+ddList.ddEl.id); xField.relatedElement = newRow; newRow.innerHTML += ' Y:<input type="text" id="y'+ddList.ddEl.id+'" name="y'+ddList.ddEl.id+'" size=3 value=0>'; var yField = document.getElementById('y'+ddList.ddEl.id); yField.relatedElement = newRow; $(xField).blur(function(){alert('Handler for X.blur() called.')}); $(yField).blur(function(){ddList.setObjectPosition(yField,obj,'y');}); if(RegExprText.test(ddList.ddEl.id)) { newRow.innerHTML += '<br>Kolor:'; var element = document.createElement('input'); element.setAttribute('id', 'c'+ddList.ddEl.id); element.setAttribute('name', 'c'+ddList.ddEl.id); element.setAttribute('type', 'text'); element.setAttribute('class', 'color'); element.setAttribute('size', '6'); newRow.appendChild(element); var myPicker = new jscolor.color(element, {}); $(element).blur(function(){ddList.setColor(element,obj);}); } var links = newRow.getElementsByTagName('a'); var editLink = links[links.length-1]; editLink.relatedElement = newRow; $(editLink).click(function(){ddList.deleteObject(obj,newRow);});
Druga podpowiedź, mówi żeby najpierw zrobić xField.relatedElement a potem newRow.innerHTML, jednak tutaj nie wiem jak mam to zrobić, skoro później mam dopiero przypisanie obiektu do xField.
Ciekawe jest również to, że zawsze działa ostatnia linijka kodu, czyli akcje editLink.
Będę wdzięczny za podpowiedzi.
Czy ktoś może i pomóc z tym problemem?