2

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.

Vignesh
  • 121
  • 3
  • 10

2 Answers2

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.

Bhojendra Rauniyar
  • 83,432
  • 35
  • 168
  • 231
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.

Aameer
  • 1,366
  • 1
  • 11
  • 30
  • 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. – Vignesh Apr 01 '14 at 10:50
  • 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. – Aameer Apr 01 '14 at 10:58