Wert einer Methode ..onClick="xy();" aus Function ändern.

tuxx

Erfahrenes Mitglied
Ich habe diesen Schnipsel:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
 <head>
  <title>Test</title>
   <script language="JavaScript1.2" type="text/javascript"><!--
    function start(){
     document.form.button. = stop();
     blabla.....
    }
    function stop(){
     document.form.button. = start();
     blabla.....
    }
  //--></script>
  </head>
  <body>		
   <form name="form">
     <input type="button" id="knopf" name="knopf" onClick="start();>Start
   </form>
  </body>
</html>

und möchte nun aus den Functionen "start();" und "stop();" heraus dem Button "knopf" eine andere "onClick=xyz();" - value zuweisen.
Geht das?
Wie?
Ich möchte allerdings nicht den Umweg über einen clickhandler nehmen.
 
Sorry, komm nicht ganz mit. Willst du:

1) onClick die Funktion Start() aufrufen und dann bei jedem weiteren Aufruf eine andere Funktion?

2) bei onClick start aufrufen, aber ohne "onClick" zi verwenden?

3) oder ganz was anderes?

Ich denke mal, du willst 3) - erklärs mir dann bitte nochmal, steh grad voll auf der Leitung...

bye
 
Der Button hat standardmässig für onClick="" den Wert start();
Nun soll aber die Function start(); als erstes die Methode, die onClick aufruft in stop(); ändern. Also ein Start-Stop-Knopf.
Hab mir schon nen Wolf gesucht, aber ausser value usw. (also Eigenschaften) ändern für einen Knopf nix gefunden.

Also hätt ich gern Variante 1.

Wenns geht halt ohne nen event- bzw. clickhandler.
 
Zuletzt bearbeitet:
Hi,

ich denke das lässt sich am besten über eine Globale Variable lösen.
Code:
<html>
<head>
  <script type="text/javascript">
     var status = 0;

     function startStop(){
        if(status==0){
          start();
          document.form.knopf.value="stop";
          status=1;
        }
        else{
           stop();
           document.form.knopf.value="start";
           status=0;
       }
    }
  </script>
</head>
<body>
    <form name="form">
       <input type="button" id="knopf" name="knopf" onClick="startStop();">Start
</form>
</body>
</html>

kommt das hin?

bye
 
Das hab ich als erstes gedacht.
Du änderst damit aber die "value" also die Beschriftung vom Knopf.
Nicht die Function, die er auslöst.
Und die Abfrage nach der value ist zu langsam.
Da kommst du nicht in der Ausführung dazwischen, wenn die Function da 60 Bilder oder so abspielt.
Denke, ich komme doch nicht um den eventHandler() drumrum.
 
Hallo,

die Beschriftung des Buttons zu ändern war hier ja nur "Bonus". Du clickst -> rufst start() auf -> setzt Status!=0 -> beim nächsten Click wird stop() aufgerufen -> setzt Status!=1 -> beim nächsten Click wird start() aufgerufen ... and so on... Ich denke da sollte es keine Geschwindigkeitsprobleme geben - ansosten häng mal das ganze Problem an, vielleicht fällt jemanden noch was anderes ein, wenn man es "live" sieht...

bye
 
Wenn du immer asl letztes von den drei Zeilen die Funktion start/stop machst?

Du könntest es übrigens auch anders machen:
PHP:
<script type="text/javascript">
var todo = "start();"

function start() {
    window.butform.but.value=" Stop ";
    todo = "stop();";
   // Mach was
}

function stop() {
    window.butform.but.value=" Start ";
    todo = "start();";
   // Mach was
}

</script>

[...]

<form name="butform">
    <input type="button" name="but" value=" Start " onClick="eval(todo);">
</form>

Oder so (ich weis allerdings nicht genau, was du mit "60 Bilder anspielen" meinst? Eine Slideshow?
PHP:
<script type="text/javascript">
var doplay = 0;

function start() {
    window.document.getElementById("BeispielBild").src = "bild"
        +Math.round(Math.random*60))."jpeg";
    if (doplay == 1) {
        setTimeout("start();", 2000);
    }
}

function startstop() {
    if (doplay == 0) {
        window.document.butform.but.value = " Stop ";
        doplay = 1;
        start();
    } else {
        window.document.butform.value = " Start " ;
        doplay = 0;
    }
}
</script>

[...]

<forn name="butform">
    <input type="button" value=" Start " onClick="startstop();" name="but">
</form>
 
Zuletzt bearbeitet von einem Moderator:
Genau, für ne Show.

Super deine Idee.

Läuft nur leider nicht.
Vielleicht, weil ich die Form samt buttons über JS erzeuge.
Danke trotzdem.
 

Neue Beiträge

Zurück