Team:UESTC/pop.js

From 2013.igem.org

(Difference between revisions)
(Created page with "// // pop! for jQuery // v0.2 requires jQuery v1.2 or later // // Licensed under the MIT: // http://www.opensource.org/licenses/mit-license.php // // Copyright 2007,2008...")
 
Line 9: Line 9:
//
//
-
(function($) {
+
(function ($) {
-
 
+
 
-
  $.pop = function(options){
+
    $.pop = function (options) {
-
   
+
 
-
    // settings
+
        // settings
-
    var settings = {
+
        var settings = {
-
    pop_class : '.pop',
+
            pop_class: '.pop',
-
    pop_toggle_text : ''
+
            pop_toggle_text: ''
-
    }
+
        }
-
   
+
 
-
    // inject html wrapper
+
        // inject html wrapper
-
    function initpops (){
+
        function initpops() {
-
      $(settings.pop_class).each(function() {
+
            $(settings.pop_class).each(function () {
-
        var pop_classes = $(this).attr("class");
+
                var pop_classes = $(this).attr("class");
-
        $(this).addClass("pop_menu");
+
                $(this).addClass("pop_menu");
-
        $(this).wrap("<div class='"+pop_classes+"'></div>");
+
                $(this).wrap("<div class='" + pop_classes + "'></div>");
-
        $(".pop_menu").attr("class", "pop_menu");
+
                $(".pop_menu").attr("class", "pop_menu");
-
        $(this).before(" \
+
                $(this).before(" \
-
           <div class='pop_toggle'>"+settings.pop_toggle_text+"</div> \
+
           <div class='pop_toggle'>"+ settings.pop_toggle_text + "</div> \
           ");
           ");
-
      });
+
            });
-
    }
+
        }
-
    initpops();
+
        initpops();
-
   
+
-
    // assign reverse z-indexes to each pop
+
-
    var totalpops = $(settings.pop_class).size() + 1000;
+
-
    $(settings.pop_class).each(function(i) {
+
-
    var popzindex = totalpops - i;
+
-
    $(this).css({ zIndex: popzindex });
+
-
    });
+
-
    // close pops if user clicks outside of pop
+
-
    activePop = null;
+
-
    function closeInactivePop() {
+
-
      $(settings.pop_class).each(function (i) {
+
-
        if ($(this).hasClass('active') && i!=activePop) {
+
-
          $(this).removeClass('active');
+
-
          }
+
-
      });
+
-
      return false;
+
-
    }
+
-
    $(settings.pop_class).mouseover(function() { activePop = $(settings.pop_class).index(this); });
+
-
    $(settings.pop_class).mouseout(function() { activePop = null; });
+
-
    $(document.body).click(function(){  
+
        // assign reverse z-indexes to each pop
-
    closeInactivePop();
+
        var totalpops = $(settings.pop_class).size();
-
    });
+
        $(settings.pop_class).each(function (i) {
-
    // toggle that pop
+
            var popzindex = totalpops - i;
-
    $(".pop_toggle").click(function(){
+
            $(this).css({ zIndex: popzindex });
-
      $(this).parent(settings.pop_class).toggleClass("active");
+
        });
-
    });
+
        // close pops if user clicks outside of pop
-
  }
+
        activePop = null;
 +
        function closeInactivePop() {
 +
            $(settings.pop_class).each(function (i) {
 +
                if ($(this).hasClass('active') && i != activePop) {
 +
                    $(this).removeClass('active');
 +
                }
 +
            });
 +
            return false;
 +
        }
 +
        $(settings.pop_class).mouseover(function () { activePop = $(settings.pop_class).index(this); });
 +
        $(settings.pop_class).mouseout(function () { activePop = null; });
 +
 
 +
        $(document.body).click(function () {
 +
            closeInactivePop();
 +
        });
 +
        // toggle that pop
 +
        $(".pop_toggle").click(function () {
 +
            $(this).parent(settings.pop_class).toggleClass("active");
 +
        });
 +
    }
})(jQuery);
})(jQuery);

Latest revision as of 15:37, 26 August 2013

// // pop! for jQuery // v0.2 requires jQuery v1.2 or later // // Licensed under the MIT: // http://www.opensource.org/licenses/mit-license.php // // Copyright 2007,2008 SEAOFCLOUDS [http://seaofclouds.com] //

(function ($) {

   $.pop = function (options) {
       // settings
       var settings = {
           pop_class: '.pop',
           pop_toggle_text: 
       }
       // inject html wrapper
       function initpops() {
           $(settings.pop_class).each(function () {
               var pop_classes = $(this).attr("class");
               $(this).addClass("pop_menu");
$(this).wrap("
");
               $(".pop_menu").attr("class", "pop_menu");
               $(this).before(" \
"+ settings.pop_toggle_text + "
\
         ");
           });
       }
       initpops();
       // assign reverse z-indexes to each pop
       var totalpops = $(settings.pop_class).size();
       $(settings.pop_class).each(function (i) {
           var popzindex = totalpops - i;
           $(this).css({ zIndex: popzindex });
       });
       // close pops if user clicks outside of pop
       activePop = null;
       function closeInactivePop() {
           $(settings.pop_class).each(function (i) {
               if ($(this).hasClass('active') && i != activePop) {
                   $(this).removeClass('active');
               }
           });
           return false;
       }
       $(settings.pop_class).mouseover(function () { activePop = $(settings.pop_class).index(this); });
       $(settings.pop_class).mouseout(function () { activePop = null; });
       $(document.body).click(function () {
           closeInactivePop();
       });
       // toggle that pop
       $(".pop_toggle").click(function () {
           $(this).parent(settings.pop_class).toggleClass("active");
       });
   }

})(jQuery);