• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Button mit zwei funktionen

Conkuist

Mitglied
Habe biss jetzt einfach nichts gefunden
kenn mich schon ein bisschen mit javascript aus
aber finde leider keine lösung für mein problem

Ich möchte einen button der z.B den text rot färbt und wenn man ihn nochmal drückt soll der text wieder schwarz werden

leider hab ich es bisher nur mit zwei buttons geschafft statt mit einem

<script>
function rot(){document.getElementById("text").style.color="red";}
function schwarz(){document.getElementById("text").style.color="black";}
</script>
<button onclick="rot()">Rot</button><button onclick="schwarz()">Schwarz</button>
<p id="text">Hallo</p>
 
jQuery ist gerade da, um sowas ganz einfach zu lösen. Binde jQuery ein und gib dem Button 'ne ID (ich gehe von id="change_color_button" aus) und definiere für jede Farbe eine CSS-Klasse (sagen wir .rot .schwarz) (direkt mit dem Style-Attribut zu spielen ist nicht gut; genauso wie onclick im HTML zu definieren):

PHP:
$("#change_color_button").click(function () {
    var $text = $("#text");
    if ($text.is(".rot")) {
        $text.addClass("schwarz").removeClass("rot");
    } else {
        $text.addClass("rot").removeClass("schwarz");
    }
});
 
Mit jQuery könnte das etwa so aussehen.

ungeprüft:
Code:
$('#text').on('click', function() {
    var textColor = $(this).css('color');
    textColor == '#000' ? $(this).css('color', '#f00') : $(this).css('color', '#000');
})
 
Habe es leider nicht geschafft das es funktioniert
Könntet ihr das bitte so machen wie ich oben

<style>
$("#change_color_button").click(function () {
var $text = $("#text");
if ($text.is(".rot")) {
$text.addClass("schwarz").removeClass("rot");
} else {
$text.addClass("rot").removeClass("schwarz");
}
});
</style>
<button id="change_color_button">Farbe</button>
<p id="text">Hallo</p>

Was hab ich falsch gemacht?
 
Du hast das Script in einen <style> Container gesetzt und rufst es auf, bevor der Button erzeugt wird.
 
<button id="change_color_button">Farbe</button>
<p id="text">Hallo</p>

<script>
$("#change_color_button").click(function () {
var $text = $("#text");
if ($text.is(".rot")) {
$text.addClass("schwarz").removeClass("rot");
} else {
$text.addClass("rot").removeClass("schwarz");
}
});
</script>

geht trotzdem nicht
 
Dann wechsle dein Hobby, Programmieren ist für dich nichts. Ich habe dir schon gesagt, was gemacht werden muss.
 
<style>
#text.rot{color:red;}
#text.schwarz{color:black;}
</style>

<button id="change_color_button">Farbe</button>
<p class="rot" id="text">Hallo</p>
<script>
$("#change_color_button").click(function () {
var $text = $("#text");
if ($text.is(".rot")) {
$text.addClass("schwarz").removeClass("rot");
} else {
$text.addClass("rot").removeClass("schwarz");
}
});
</script>

Kannst mir ja wenigstens nen Tipp geben was falsch ist
 
<button id="change_color_button">Farbe</button>

geht trotzdem nicht

Ein reines copy & paste reicht eben manchmal nicht.

Das hier geht:
HTML:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>

//Farbzuweisung per Inline-CSS
$('#change_color_button').on('click', function() {
  var textColor = $('#text').css('color') === 'rgb(0, 0, 0)' ? 'rgb(255, 0, 0)' : 'rgb(0, 0, 0)';
  $('#text').css('color', textColor);
})

//CSS-Klassenzuweisung mit Toggle
$('#change_color_button').on('click', function() {
  $('#text').toggleClass('red');
});
</script>
 
<style>
#text.rot{color:red;}
#text.schwarz{color:black;}
</style>

<button id="change_color_button">Farbe</button>
<p class="rot" id="text">Hallo</p>
<script>
$("#change_color_button").click(function () {
var $text = $("#text");
if ($text.is(".rot")) {
$text.addClass("schwarz").removeClass("rot");
} else {
$text.addClass("rot").removeClass("schwarz");
}
});
</script>

Kannst mir ja wenigstens nen Tipp geben was falsch ist

Deine Einstellung ist falsch. Du liest dir nicht mal Beiträge vollständig durch und Debugging ist dir auch kein Begriff.
 
Jetzt probier ich schon ewig lang rum und es gehtimmer noch nicht
Tut mir leid wenn ich mit deiner Anleitung nichts anfangen kann
aber sehr hilfreich ist das alles hier nicht wirklich
 
Kennt jemand ein gutes Java Script Tutorial für Grundlage und für später eines das sich mit Steuerung von Elementen befasst
 
Zurück
Oben