Ich habe mein Problem in jsfiddle repliziert: http://jsfiddle.net/66UCX/

Ich möchte nur zwischen Rot und Weiß wechseln, wenn der Benutzer auf das td in einer Tabelle klickt. Ich habe versucht, eine if-Anweisung zu verwenden, um die Hintergrundfarbe wie folgt zu testen: if ($ ("# fbodytd _" + uid + "_" + row + "_" + col) .css ("Hintergrundfarbe") == "rgb (255, 0, 0)") {

Und das hat nicht funktioniert, also habe ich versucht, eine Klasse namens 'active' hinzuzufügen und zu entfernen und darauf zu testen. Vielen Dank.

0
Aaron 25 Nov. 2013 im 16:14

4 Antworten

Beste Antwort

Sie haben Ihre Funktion function changecream(uid, row, col) nicht gebunden.

Hier ist eine funktionierende Geige:

$("table").on("click", "td", function(){
if($(this).hasClass("red")){
    $(this).removeClass("red").addClass("white");
} else {
    $(this).removeClass("white").addClass("red");
}

});

Bearbeiten: Wenn Sie nur zwischen der Hintergrundfarbe und einer ausgewählten Farbe wechseln, können Sie das "On Click" vereinfachen:

$(this).toggleClass("red");
0
Thomas Junk 25 Nov. 2013 im 12:25

Sie müssen die jquery-Bibliothek einschließen

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js" type="text/javascript"></script>

Und Ihr Code sieht in $ (document) .ready so aus

 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){

$('#button').bind('click', function(){
    $(this).after('<span> click is active</span>');
    $('span').fadeOut(1000);
});

$('#toggle').toggle(
    function(){
        $(this).text('rebind').removeClass('unbind').addClass('rebind');
    },
    function(){

     $(this).text('unbind').addClass('unbind').removeClass('rebind');
    }
);

if($("#toggle").hasClass("unbind")) {
    $('#button').bind('click');
}
else {
    $('#button').unbind('click');
}

});
</script> 
0
jai lalawat 25 Nov. 2013 im 12:24

Wenn Sie nur den Hintergrund hin und her ändern möchten (und vielleicht auch etwas anderes). Klasse hinzufügen wie

.active
{
    background-color: Red
}

Und verwenden Sie einen Code wie folgt:

$("table").on("click", "td", function() {
    $(this).toggleClass("active");
});

Hoffe das hilft.

0
Esko 25 Nov. 2013 im 12:27

Wenn Sie jQuery trotzdem verwenden, sollte die folgende vereinfachte Version ausreichen:

$('table.bodymap td').click(function () {
    $(this).toggleClass('active')
});

Ein funktionierendes Beispiel finden Sie unter dieser Geige.

0
cg. 25 Nov. 2013 im 12:27