Andreas1: Objekte

Hallo,

wollte gerne ein Objekt erstellen mit den Name einer ID.

So in etwa:

  
			listbox = $(data).find(".UIListBox");  
			listID = $(listbox).attr("id");  
			if (typeof listID != "undefined")  
			{  
				listID = new UIListBox(listbox);  
			}  

Natürlich funktioniert das ganze nicht. Wenn die ID jetzt z.B. "MyList" hat, will ich das gerne  mit $.MyList.function(); ansprechen können. Wie macht man sowas?

MfG

  1. Hallo!

      	listbox = $(data).find(".UIListBox");  
      	listID = $(listbox).attr("id");  
      	if (typeof listID != "undefined")  
      	{  
      		listID = new UIListBox(listbox);  
      	}  
    
    
    >   
    > Natürlich funktioniert das ganze nicht. Wenn die ID jetzt z.B. "MyList" hat, will ich das gerne  mit $.MyList.function(); ansprechen können. Wie macht man sowas?  
      
    Du kannst die Instanzen als Eigenschaften an einem Objekt speichern. Als Eigenschaftsnamen kannst du die ID verwenden:  
      
    ~~~javascript
    var allListBoxes = {};  
    var listBox = new UIListBox();  
    allListBoxes[listID] = listBox;
    

    Wenn listID z.B. »foo« ist, so verweist allListBoxes.foo auf die entsprechende Instanz.

    Ich würde vorschlagen, ein eigenes Objekt und nicht $ (vermutlich jQuery) zu verwenden. An $ hängen bereits viele andere Eigenschaften. Ein neues, eigenes Objekt ist ein leerer Namespace (Namensraum).

    Grüße,
    Mathias

    1. var allListBoxes = {};

      var listBox = new UIListBox();
      allListBoxes[listID] = listBox;

      
      >   
      > Wenn listID z.B. »foo« ist, so verweist allListBoxes.foo auf die entsprechende Instanz.  
      >   
      > Ich würde vorschlagen, ein eigenes Objekt und nicht $ (vermutlich jQuery) zu verwenden. An $ hängen bereits viele andere Eigenschaften. Ein neues, eigenes Objekt ist ein leerer Namespace (Namensraum).  
      >   
      > Grüße,  
      > Mathias  
        
      Perfekt. Vielen Dank!