I'm trying to set a class to active depending on the url. I'm trying to use the code below, but in every case, it activates the active class for the second tab.
var pathname = window.location.pathname;
if(pathname = '/learn/subsection2') {
$("ul.tabs li:eq(1)").addClass("active").show(); //Activate second tab
$(".tab_content:eq(1)").show(); //Show second tab content
} else {
$("ul.tabs li:first").addClass("active").show(); //Activate first tab
$(".tab_content:first").show(); //Show first tab content
}
You used a
=
instead of a==
or===
in your comparison. This is why many programmers shift the statement around so it throws an error vs. running code unintentionally... its a very common mistake!Here is an example of the same
if
g statement switched around. Had you used this format, but made the same mistake, it would have thrown an error which would have helped you located it faster:You are assigning rather than checking for equality in your if statement.
You're using
=
instead of==
, a common programming error.=
is assignment,==
is comparison.When using
=
, it assigns the string/lean/subsection2
to the variablepathname
and evaluates it as a boolean value, which is always true (it'd have to be false or undefined), so it always takes the positive condition block.Use
==
instead of=
in theif
statement.