Skip to content

Yet another full-fledged jQuery accordion plugin with bare minimum code.

License

Notifications You must be signed in to change notification settings

effone/jquery.ruk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jquery.ruk

Yet another full-fledged jQuery accordion plugin with bare minimum code. 607 bytes only (418 bytes : js, 189 bytes : css

Dependency

Since it is a jQuery plugin; jQuery library should be included on prior.

Instalation

Include jquery.ruk.min.css from dist folder.

<link rel="stylesheet" href="./dist/jquery.ruk.min.css">

Include jquery.ruk.min.js from dist folder.

<script src="./dist/jquery.ruk.min.js"></script>

Initiate the plugin.

$('.target').ruk();

Thats all. Your target div is now ruk (an accordion).

npm? npm install jquery.ruk

Target Element Structure

The target element should have div groups, each containing collapse groups in div pairs : one for title and the other for content (that will hide or show). Targetting element structure other than this may cause the plugin malfunction. Example:

<div class="target"> <!-- the ruk element -->

    <div> <!-- group : 1 -->
        <div>Title Block</div> <!-- title block -->
        <div>Content Block</div> <!-- content block (will show / hide) -->
    </div>

    <div> <!-- group : 2 -->
        <div>Title Block</div>
        <div>Content Block</div>
    </div>

    <div> <!-- group : 3 -->
        <div>Title Block</div>
        <div>Content Block</div>
    </div>

     <!-- add as many similar groups as you want -->

</div>

Option(s)

As of now there is only one option and that is only. By default this is set to false but if you set it true only one element will remain opened at-a-time, that means clicking on a 'title block' will close other opened 'content blocks' before opening its content.

You can set only option on this way:

$('.target').ruk({
    only: true
});

Callback

This plugin supports a callback and extends the ability to get the group sequence number and it's content state after each title click. This can be helpful for

  • Saving the states of the groups using cookies
  • Targetting to load ajax content in the content block when it gets opened.

etc.

You can set the callback this way:

$('.target').ruk({
    after: function (id, state) {
        // 'id' is the group serial number
        // 'state' is corresponding 'content block' state. If the content block is visible the state is 'true', else 'false'.
        console.log(id + " : " + state);
    }
});

Version History

1.0.0 : <2018.08.22>

  • Initial stable release