tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von CPoly
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
493
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Thopeto Thopeto ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    227
    Hallo,

    Ich hab eine Klasse erstellt, die einen Layer mit Buttons erstellt. Dabei soll man per:

    Code :
    1
    2
    3
    
    dlg.setButtons({'Okay': function(event){
            alert('huhu');
      }});

    Buttons hinzufügen und diese sollten eine Funktion beinhalten. die dann beim clicken ausgeführt werden soll:
    Code :
    1
    2
    3
    4
    5
    6
    
    for (var button in this.buttons) {
                var bttn = $('<button></button>');
                    bttn.bind('click', this.buttons[button]);
                bttn.append(button);
                bttnFrame.append(bttn);
            }

    aber nichts passiert beim clicken. Wenn ich this.buttons[button] mit function(event){} ersetze, funktioniert alles wunderbar. was mach ich falsch?

    grüße
     

  2. #2
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Wie sieht denn "setButtons()" aus?
     

  3. #3
    Thopeto Thopeto ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    227
    setButtons speichert den Array in eine Variable(this.buttons) ab.
    this.setButtons = function(v) {
    this.buttons = v;
    }
     

  4. #4
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Ich kann das nicht reproduzieren. Ich habe es mal selbst programmiert.
    HTML-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html id="html" xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
    <head>
    	<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    	
    	<title>Page title</title>
    
    	<link href="style.css" rel="stylesheet" type="text/css" />
    
    	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
    
    	<script type="text/javascript">
    	/* <![CDATA[ */
    		$(document).ready(function(){
    			var dlg = new MyClass($("#frame"));
    			
    			dlg.setButtons({
    				'Okay': function(event){
    					alert('huhu');
    				},
    				'Abbrechen': function(event){
    					alert('foobar');
    				}
    			});
    			
    			dlg.build();
    		});
    		
    		function MyClass(frame) {
    			var bttnFrame = frame;
    			
    			var buttons = {};
    			
    			this.setButtons = function(v) {
    				this.buttons = v;
    			} 
    			
    			this.build = function() {
    				for (var button in this.buttons) {
    					var bttn = $('<button></button>');
    					bttn.bind('click', this.buttons[button]);
    					bttn.append(button);
    					bttnFrame.append(bttn);
    				}
    			}
    		}
    	/* ]]> */
    	</script>
    </head>
    
    <body>
    	<div id="frame"></div>
    </body>
    
    </html>
    Thopeto bedankt sich. 

  5. #5
    Thopeto Thopeto ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    227
    ja der code ist auch richtig, der fehler war an einer anderen stelle so, dass er den oben geschriebenen code nicht richtig ausführen lies.

    danke für deine mühe und hilfe!
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 14.01.11, 17:41
  2. Antworten: 8
    Letzter Beitrag: 18.01.08, 12:11
  3. Einer Variable eine _neues_ Element zuweisen
    Von cheeZy im Forum Javascript & Ajax
    Antworten: 30
    Letzter Beitrag: 07.12.07, 12:44
  4. Übergabe einer Variable an eine Funktion
    Von WilliWurst im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 06.07.06, 13:46
  5. Eine Variable von einer Funktion an eine andere übergeben
    Von pride im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 26.08.05, 22:59