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"); })