Advertisement
nefi_c

popover modification

Dec 8th, 2012
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
jQuery 2.22 KB | None | 0 0
  1. /**
  2.  *  jQuery Cookie
  3.  */
  4. (function(e,t,n){function i(e){return e}function s(e){return decodeURIComponent(e.replace(r," "))}var r=/\+/g;var o=e.cookie=function(r,u,a){if(u!==n){a=e.extend({},o.defaults,a);if(u===null){a.expires=-1}if(typeof a.expires==="number"){var f=a.expires,l=a.expires=new Date;l.setDate(l.getDate()+f)}u=o.json?JSON.stringify(u):String(u);return t.cookie=[encodeURIComponent(r),"=",o.raw?u:encodeURIComponent(u),a.expires?"; expires="+a.expires.toUTCString():"",a.path?"; path="+a.path:"",a.domain?"; domain="+a.domain:"",a.secure?"; secure":""].join("")}var c=o.raw?i:s;var h=t.cookie.split("; ");for(var p=0,d=h.length;p<d;p++){var v=h[p].split("=");if(c(v.shift())===r){var m=c(v.join("="));return o.json?JSON.parse(m):m}}return null};o.defaults={};e.removeCookie=function(t,n){if(e.cookie(t)!==null){e.cookie(t,null,n);return true}return false}})(jQuery,document);
  5.  
  6. //*** End jQuery Cookie ***
  7. jQuery(document).ready(function(jQuery){
  8.    
  9.     var ele = jQuery('a[rel="popover"]'), pb_index = jQuery.cookie('po_index'), delayOnHover;
  10.    
  11.     /* initialize popbox */
  12.     ele.popover({trigger:'manual',html:true});
  13.    
  14.     ele.each(function(){
  15.         var f_data = jQuery(this).attr('data-content');
  16.         if(f_data.match(/gform_validation_error/i) && pb_index != 'none' ){
  17.             // find the form by looking at cookie and open it
  18.             ele.eq(pb_index).popover('show').next().attr('id','to-this');
  19.             // go to the marked error form
  20.             window.location.hash = 'to-this';
  21.             // clean up cookie, add error class and remove hash id
  22.             jQuery.cookie('po_index', 'none');
  23.             jQuery(this).addClass('error-popover').next().removeAttr('id');
  24.         }
  25.     });
  26.    
  27.     /* save clicked index popbox that contain the form */
  28.     jQuery('body').on('mouseenter', 'a[rel="popover"]:not(.error-popover), .popover' ,function(e){
  29.         e.preventDefault();
  30.         if(!jQuery(this).is('.popover')){
  31.             var f_index = jQuery(this).index('a[rel="popover"]');  
  32.             jQuery.cookie('po_index', f_index);
  33.         }
  34.         clearTimeout(delayOnHover);
  35.         jQuery(this).popover('show');
  36.     });
  37.    
  38.     /* hide mouseleave */
  39.     jQuery('body').on('mouseleave', 'a[rel="popover"], .popover', function(){
  40.         delayOnHover = setTimeout(function(){ jQuery('a[rel="popover"]:not(.error-popover)').popover('hide') }, 500);
  41.     });
  42.    
  43. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement