Нет описания

jquery.grp_collapsible.js 1.1KB

123456789101112131415161718192021222324252627282930313233343536
  1. /**
  2. * GRAPPELLI COLLAPSIBLES
  3. * handles collapsibles,
  4. * excluding open/closing all elements
  5. * within a group.
  6. */
  7. (function($) {
  8. $.fn.grp_collapsible = function(options){
  9. var defaults = {
  10. toggle_handler_slctr: ".grp-collapse-handler:first",
  11. closed_css: "grp-closed",
  12. open_css: "grp-open",
  13. on_init: function() {},
  14. on_toggle: function() {}
  15. };
  16. var opts = $.extend(defaults, options);
  17. return this.each(function() {
  18. _initialize($(this), opts);
  19. });
  20. };
  21. var _initialize = function(elem, options) {
  22. options.on_init(elem, options);
  23. _register_handlers(elem, options);
  24. };
  25. var _register_handlers = function(elem, options) {
  26. _register_toggle_handler(elem, options);
  27. };
  28. var _register_toggle_handler = function(elem, options) {
  29. elem.children(options.toggle_handler_slctr).on("click", function() {
  30. elem.toggleClass(options.closed_css).toggleClass(options.open_css);
  31. options.on_toggle(elem, options);
  32. });
  33. };
  34. })(grp.jQuery);