For some reason the .toggleClass() function doesnt exist for this jQuery piece of code but the rest of the jQuery methods are working. What am I missing?
let listNode, imageNode, imageLinks;
let colapseExpend = (subject) => {
subject.toggleClass("plus");
subject.toggleClass("minus");
subject.next().toggleClass("open");
subject.next().toggleClass("closed");
imageNode.attr("src", "");
imageNode.css("display", "none");
}
$(document).ready(function () {
listNode = $("#categories").find("h2");
imageNode = $("#image");
for (let i in listNode) {
$(i).click(function (e) {
colapseExpend(this);
});
}
});
As far as I know, this in colapseExpend(this); is a plain DOM Element object, no longer a jQuery object. In collapseExpend, you want to re-wrap in $():
let colapseExpend = (subject) => {
let $subject = $(subject)
$subject.toggleClass("plus");
$subject.toggleClass("minus");
$subject.next().toggleClass("open");
$subject.next().toggleClass("closed");
imageNode.attr("src", "");
imageNode.css("display", "none");
}