Revision c5b519a6-0888-41ed-8ebc-53e22aa3c31e - Stack Overflow
Here is what is going on - in your ternary operation, on the last line, you are trying to call two functions. That is not possible. You need to use an `if` block. Here is how I rewrote it. I don't know if you are using the `doIt` variable for any purpose, but you will want to check for `undefined`:
$('.holder').on('click','a',function(e){
e.preventDefault();
var $allextended = $(this).closest('.wrapperdoo').find('.extended'),
$extended = $allextended.eq( $(this).index() ),
doIt = undefined;
if ($extended.is(":visible")) {
doIt = $extended.slideUp();
} else {
$allextended.slideUp();
doIt = $extended.slideDown();
}
});
**--- EDIT ---**
To add the class to the href that is being clicked, just do it like this, in the function:
$(this).addClass('class');
If you want to remove the class when you are done, do it like this. First, assign the this variable as a global variable (so the `this` variables don't get mixed up), like so:
var sender = $(this);
Then, in your `slideUp()` or `slideDown()` functions, the second parameter is a callback for when it is completed:
$allextended.slideUp(500, function() { sender.removeClass('class'); });