2016-07-16 4 views
0

Ich habe ein einfaches Skript gemacht, um die Farbe eines div mit der Klasse ".logged_inn_text" zu ändern. Das Skript verwendet den Hintergrundstil aus dem angeklickten Link und fügt ihn in die Klasse ein.IE und Edge können JavaScript nicht ausführen für css change

Der Code wurde in Chrome erstellt und es funktionierte einwandfrei, während in IE und Edge nichts passiert. Wenn ich die var genannte Farbe alert habe, gibt es keine Antwort. Gibt es einen vernünftigen Grund, warum es nicht funktioniert?

$(document).ready(function() { 
    $('.settings_color_btn').click(function() { 
     var colorId = $(this).attr('id'); 
     var colorIdFull = '#'+colorId; 
     var color = $(colorIdFull).css('background'); 
     $('.logged_inn_text').fadeTo('fast', 0.4, function() { 
      $(this).css('background', color); 
     }).fadeTo('fast', 1); 
     return false; 
    }); 
}); 
+1

tun erhalte ich wirklich verwirrt Durch das Lesen? Wenn du auf ein Element klickst, erhältst du die ID, dann benutzt du diese ID als Selektor und du erhältst das .. das Element, auf das gerade geklickt wurde, oder mit anderen Worten 'dieses'? Wenn Sie jedoch eine Version von jQuery verwenden, die in den von Ihnen verwendeten Browsern funktioniert, gibt es keinen Grund, warum jQuery nicht in IE funktioniert. – adeneo

+0

Wie auch immer, es funktioniert einwandfrei -> https://jsfiddle.net/kd4eqdvh/ Ich schätze, Sie haben dem Element keine ID – adeneo

+0

Die 'var color = $ (colorIdFull) .css ('Hintergrund'); 'wird Ihnen keine Farbe geben,' var color = $ (colorIdFull) .css ('backgroundColor'); 'sollte – LGSon

Antwort

1

scheint IE Rückkehr undefined (dank adeneo wer das getestet), so

var color = $(colorIdFull).css('background'); 

zu

var color = $(colorIdFull).css('background-color'); 

Wechsel wird der Trick