Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odwolanie sie do obiektu 'rodzica'
thornag
post
Post #1





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

Ostrzeżenie: (0%)
-----


Witam.

Mam taki oto kod.

  1. <?php
  2. this.oDebug = document.getElementById('debug');  
  3.  
  4. this.sDragableClassName = 'drag';
  5.  
  6. alert(this.oDebug);
  7.  
  8. this.OnMouseDown = function(oElement) {
  9. if (oElement == null) { 
  10. oElement = window.event;
  11. }
  12.  
  13. alert('przed');
  14.  
  15. var oTarget = oElement.target != null ? oElement.target : oElement.srcElement;
  16.  
  17. alert('po');
  18.  
  19. alert(this.oDebug);
  20. ?>


Wlasciwosc oDebud przechowuje mi diva, chcialbym sie do niego odwolac z metody obiektu, jednak jak zdazylem zauwazyc uzywanie slowa kluczowego this. nie odnosci skutku gdyz this dla metody jest juz odwolaniem do metody samej w sobie. Efekt tego taki ze pierwszy alert podaje mi prawidlowo diva drugi juz niestety undefined.

Stad pytanie, w jaki sposob moge sie odwolac do wlasciwosci 'klasy/obiektu' (jesli mozna to tak nazwac) z metody owego obiektu/klasy ?

Calosc znajduje sie tutaj

Ten post edytował thornag 25.01.2007, 14:06:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
revyag
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Problem wydaje się być taki, że this nie referuje do obiektu tylko do dokumentu. Nie zagłębiałem się w to dokładniej, ale rozwiążesz to wyrzucając metody odwołujące się do pól obiektu poza obiekt,wiem że to zamotane, ale innego wyjścia chyba nie masz.

Kod
<script type="text/javascript">
function TCore_DragAndDropObject() {
    this.iStartX = 0;            
    this.iStartY = 0;
    this.iOffsetX = 0;
    this.iOffsetY = 0;
    this.oDragElement;          
    this.iOldZIndex = 0;  
    this.oDebug = document.getElementById('debug');  
    this.sDragableClassName = 'DragableElement';
}
function init() {
    var oDragAndDrop = new TCore_DragAndDropObject;
    document.onmousedown=function(e) {
    if (!e) {
        e = window.event;
    }
    var oTarget = e.target != null ? e.target : e.srcElement;
    oDragAndDrop.oDebug.innerHTML = oTarget.className == this.sDragableClassName ? 'dragable' : 'dragable'    
    }
}

a potem wywołasz tylko init().
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 29.12.2025 - 15:12