3

I have this accordion function :

 $('.accordion a').click(function () {

        if($(this).is('.accordionClose')) {
            $('.accordionOpen').toggleClass('accordionOpen').toggleClass('accordionClose').next().slideToggle().toggleClass('openContent');
            $(this).toggleClass('accordionOpen').toggleClass('accordionClose');
            $(this).next().slideToggle().toggleClass('openContent');
        }

        else {
            $(this).toggleClass('accordionOpen').toggleClass('accordionClose');
            $(this).next().slideToggle().toggleClass('openContent');
        }
    });

I have this snippet to make a accordion effect. Problem is I am not aware how to make this a common function and call it whenever required. Do I need to make it in a plugin format ? Or any other possible way of doing it?

I am aware of using multiple selctors separated by comma. I do not mean that.

1
  • what do you exactly want? Commented Apr 1, 2014 at 10:40

2 Answers 2

14

Write like this:

function func_name(){
//do stuff here
}

//call this later like this:

$('.accordion a').click(func_name);

//Or call like this:
$('.accordion a').click(function(){
  func_name(); //parenthesis required here
});

Also, you may look at another post for stepping up a little more.

Sign up to request clarification or add additional context in comments.

2 Comments

Isn't $('.accordion a').on('click', func_name); much better?
@Steve yeah! that's better but I've used click as if the OP has used that and that's not the problem.
1

If you want to do exactly the same thing on some other click then You can also trigger the same click event by trigger like :

$(".xyz_class").click(function(){
   $(".accordion a").trigger("click");
});

Docs are here. Hope that helps.

2 Comments

I meant I want the function to be reusable. Not using the whole snippet in all the places. Hope you got my question right now.
The whole point of using functions is to reuse the code.Can you please elaborate on your statement "function to be reusable".As we know all the functions are reusable you can call them any number of times and reuse the code.If you could explain what your objective is?.we could get a better understanding of your problem and will try to help.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.