Fórum Root.cz
		Hlavní témata => Vývoj => Téma založeno: Kolesa  24. 04. 2018, 23:01:56
		
			
			- 
				Ahoj chlapy, chodí sem někdo kdo dělá v jQuery? Potřebuji doplnit kód ale netuším vůbec jak.
 Tento kód mi změní po kliknutí na html tag p barvu, potřeboval bych ale aby se po opětovném kliknutí vrátil požadovaný css style. Může prosím někdo poradit? Děkuji.
 $("p").on("click", function(){
 $(this).css("background", "orange");
 $(this).css("color", "white");
 });
- 
				$("p").on("click", function(){
 var $p = $(this);
 if ($p.hasClass('clicked')) {
 $p.removeClass('clicked');
 $p.css("background", "");
 $p.css("color", "");
 } else {
 $p.addClass('clicked');
 $p.css("background", "orange");
 $p.css("color", "white");
 }
 });
 
- 
				a není to otrocké opakování? 
 3x se tam opakuje slovo clicked, 2x se tam opakují názvy měněných vlastností.
 
 Není něco jako toggle class?
 
 x.onclick(toggle  {background: { false, 'red'}, color: {blue, null} , shadow{ green, darkgreen} } )
 
 
 Není jednoduší jen s každým klikem togglovat nějaký parametr například class clicked a vytvořit si bokem definici třídy .clicked?
- 
				toggleclass tu moc platny nebude, stejne musi zjistit stav. Ale zkratit to lze:
 $("p").on("click", function(){
 var $p = $(this);
 if ($p.hasClass('clicked')) {
 $p.removeClass('clicked').css({background: "", color: ""});
 } else {
 $p.addClass('clicked').css({background: "orange", color: "white"});
 }
 });
 
- 
				toggleclass tu moc platny nebude, stejne musi zjistit stav. Ale zkratit to lze:
 $("p").on("click", function(){
 var $p = $(this);
 if ($p.hasClass('clicked')) {
 $p.removeClass('clicked').css({background: "", color: ""});
 } else {
 $p.addClass('clicked').css({background: "orange", color: "white"});
 }
 });
 
 
 A je nutné si ten stav pamatovat přes class není jednoduší použít  $.data nebo proměnou.
- 
				Co zkusit:
 .clicked { background: orange; color: white; }$("p").on("click", function(){ $(this).toggleClass("clicked"); })
- 
				A nebo ještě jednodušeji:
 $("p").click(function(){ $(this).toggleClass("clicked"); })