2013-07-27 127 views
0

我看過很多人都遇到過這個錯誤,但是大多數人都說這是因爲jquery沒有定義或者類似的東西...Uncaught TypeError:Object [object Object] has no method'lightbox_me'

我對着那裏的非常相同的腳本對我的作品在其他網站相同的錯誤....

我甚至在燈箱我的文件,但它仍然給出了錯誤寫我的功能。然後我把它放入收藏夾碼本身,而是沒有用的......

我複製並粘貼在這裏的代碼......你們中的大多數人必須已經具備收藏我的代碼,但我只是張貼供參考......在函數「switch_sections」裏我把這個線

「$(」#阿賈克斯裝載機「)發生的錯誤。lightbox_me();」

(function($) { 

    $.fn.lightbox_me = function(options) { 

     return this.each(function() { 

      var 
      opts = $.extend({}, $.fn.lightbox_me.defaults, options), 
      $overlay = $(), 
      $self = $(this), 
      $iframe = $('<iframe id="foo" style="z-index: ' + (opts.zIndex + 1) + ';border: none; margin: 0; padding: 0; position: absolute; width: 100%; height: 100%; top: 0; left: 0; filter: mask();"/>'), 
      ie6 = ($.browser.msie && $.browser.version < 7); 

      if (opts.showOverlay) { 
       //check if there's an existing overlay, if so, make subequent ones clear 
       var $currentOverlays = $(".js_lb_overlay:visible"); 
       if ($currentOverlays.length > 0){ 
        $overlay = $('<div class="lb_overlay_clear js_lb_overlay"/>'); 
       } else { 
        $overlay = $('<div class="' + opts.classPrefix + '_overlay js_lb_overlay"/>'); 
       } 
      } 

      /*---------------------------------------------------- 
       DOM Building 
      ---------------------------------------------------- */ 
      if (ie6) { 
       var src = /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'; 
       $iframe.attr('src', src); 
       $('body').append($iframe); 
      } // iframe shim for ie6, to hide select elements 
      $('body').append($self.hide()).append($overlay); 


      /*---------------------------------------------------- 
       Overlay CSS stuffs 
      ---------------------------------------------------- */ 

      // set css of the overlay 
      if (opts.showOverlay) { 
       setOverlayHeight(); // pulled this into a function because it is called on window resize. 
       $overlay.css({ 
        position: 'absolute', 
        width: '100%', 
        top: 0, 
        left: 0, 
        right: 0, 
        bottom: 0, 
        zIndex: (opts.zIndex + 2), 
        display: 'none' 
       }); 
       if (!$overlay.hasClass('lb_overlay_clear')){ 
        $overlay.css(opts.overlayCSS); 
       } 
      } 

      /*---------------------------------------------------- 
       Animate it in. 
      ---------------------------------------------------- */ 
      // 
      if (opts.showOverlay) { 
       $overlay.fadeIn(opts.overlaySpeed, function() { 
        setSelfPosition(); 
        $self[opts.appearEffect](opts.lightboxSpeed, function() { 
         setOverlayHeight(); 
         setSelfPosition(); 
         opts.onLoad() 
         }); 
       }); 
      } else { 
       setSelfPosition(); 
       $self[opts.appearEffect](opts.lightboxSpeed, function() { 
        opts.onLoad() 
        }); 
      } 

      /*---------------------------------------------------- 
       Hide parent if parent specified (parentLightbox should be jquery reference to any parent lightbox) 
      ---------------------------------------------------- */ 
      if (opts.parentLightbox) { 
       opts.parentLightbox.fadeOut(200); 
      } 


      /*---------------------------------------------------- 
       Bind Events 
      ---------------------------------------------------- */ 

      $(window).resize(setOverlayHeight) 
      .resize(setSelfPosition) 
      .scroll(setSelfPosition); 

      $(window).bind('keyup.lightbox_me', observeKeyPress); 

      if (opts.closeClick) { 
       //$overlay.click(function(e) { closeLightbox(); e.preventDefault; }); 
       $overlay.click(function(e) { 
        e.preventDefault; 
       }); 
      } 
      $self.delegate(opts.closeSelector, "click", function(e) { 
       closeLightbox(); 
       e.preventDefault(); 
      }); 
      $self.bind('close', closeLightbox); 
      $self.bind('reposition', setSelfPosition); 



      /*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
       -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */ 


      /*---------------------------------------------------- 
       Private Functions 
      ---------------------------------------------------- */ 

      /* Remove or hide all elements */ 
      function closeLightbox() { 
       var s = $self[0].style; 
       if (opts.destroyOnClose) { 
        $self.add($overlay).remove(); 
       } else { 
        $self.add($overlay).hide(); 
       } 

       //show the hidden parent lightbox 
       if (opts.parentLightbox) { 
        opts.parentLightbox.fadeIn(200); 
       } 

       $iframe.remove(); 

       // clean up events. 
       $self.undelegate(opts.closeSelector, "click"); 

       $(window).unbind('reposition', setOverlayHeight); 
       $(window).unbind('reposition', setSelfPosition); 
       $(window).unbind('scroll', setSelfPosition); 
       $(window).unbind('keyup.lightbox_me'); 
       if (ie6) 
        s.removeExpression('top'); 
       opts.onClose(); 
      } 


      /* Function to bind to the window to observe the escape/enter key press */ 
      function observeKeyPress(e) { 
       if((e.keyCode == 27 || (e.DOM_VK_ESCAPE == 27 && e.which==0)) && opts.closeEsc) closeLightbox(); 
      } 


      /* Set the height of the overlay 
        : if the document height is taller than the window, then set the overlay height to the document height. 
        : otherwise, just set overlay height: 100% 
      */ 
      function setOverlayHeight() { 
       if ($(window).height() < $(document).height()) { 
        $overlay.css({ 
         height: $(document).height() + 'px' 
         }); 
        $iframe.css({ 
         height: $(document).height() + 'px' 
         }); 
       } else { 
        $overlay.css({ 
         height: '100%' 
        }); 
        if (ie6) { 
         $('html,body').css('height','100%'); 
         $iframe.css('height', '100%'); 
        } // ie6 hack for height: 100%; TODO: handle this in IE7 
       } 
      } 


      /* Set the position of the modal'd window ($self) 
        : if $self is taller than the window, then make it absolutely positioned 
        : otherwise fixed 
      */ 
      function setSelfPosition() { 
       var s = $self[0].style; 

       // reset CSS so width is re-calculated for margin-left CSS 
       $self.css({ 
        left: '50%', 
        marginLeft: ($self.outerWidth()/2) * -1, 
        zIndex: (opts.zIndex + 3) 
       }); 


       /* we have to get a little fancy when dealing with height, because lightbox_me 
        is just so fancy. 
       */ 

       // if the height of $self is bigger than the window and self isn't already position absolute 
       if (($self.height() + 80 >= $(window).height()) && ($self.css('position') != 'absolute' || ie6)) { 

        // we are going to make it positioned where the user can see it, but they can still scroll 
        // so the top offset is based on the user's scroll position. 
        var topOffset = $(document).scrollTop() + 40; 
        $self.css({ 
         position: 'absolute', 
         top: topOffset + 'px', 
         marginTop: 0 
        }) 
        if (ie6) { 
         s.removeExpression('top'); 
        } 
       } else if ($self.height()+ 80 < $(window).height()) { 
        //if the height is less than the window height, then we're gonna make this thing position: fixed. 
        // in ie6 we're gonna fake it. 
        if (ie6) { 
         s.position = 'absolute'; 
         if (opts.centered) { 
          s.setExpression('top', '(document.documentElement.clientHeight || document.body.clientHeight)/2 - (this.offsetHeight/2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"') 
          s.marginTop = 0; 
         } else { 
          var top = (opts.modalCSS && opts.modalCSS.top) ? parseInt(opts.modalCSS.top) : 0; 
          s.setExpression('top', '((blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"') 
         } 
        } else { 
         if (opts.centered) { 
          $self.css({ 
           position: 'fixed', 
           top: '50%', 
           marginTop: ($self.outerHeight()/2) * -1 
           }) 
         } else { 
          $self.css({ 
           position: 'fixed' 
          }).css(opts.modalCSS); 
         } 

        } 
       } 
      } 

     }); 



    }; 

    $.fn.lightbox_me.defaults = { 

     // animation 
     appearEffect: "fadeIn", 
     appearEase: "", 
     overlaySpeed: 250, 
     lightboxSpeed: 300, 

     // close 
     closeSelector: ".close", 
     closeClick: true, 
     closeEsc: true, 

     // behavior 
     destroyOnClose: false, 
     showOverlay: true, 
     parentLightbox: false, 

     // callbacks 
     onLoad: function() {}, 
     onClose: function() {}, 

     // style 
     classPrefix: 'lb', 
     zIndex: 999, 
     centered: false, 
     modalCSS: { 
      top: '40px' 
     }, 
     overlayCSS: { 
      background: 'black', 
      opacity: .3 
     } 
    } 
})(jQuery); 
function switch_sections(id_to_show,class_setting_id) 
{ 
    document.getElementById('ajax-loader').style.display="block"; 
    $("#ajax-loader").lightbox_me(); 
    setTimeout(function(){ 
     document.getElementById('ajax-loader').style.display="none"; 
     $('#ajax-loader').trigger('close'); 
    },3000); 

    document.getElementById('occupations').style.display='none'; 
    document.getElementById('inductions').style.display='none'; 
    document.getElementById('licenses').style.display='none'; 
    document.getElementById('tickets').style.display='none'; 

    document.getElementById('occ').className=''; 
    document.getElementById('inc').className=''; 
    document.getElementById('lics').className=''; 
    document.getElementById('tick').className=''; 



    document.getElementById(id_to_show).style.display='block'; 
    document.getElementById(class_setting_id).className='active'; 
} 

任何一個可以幫助我在這?我將不勝感激......

回答

0

爲我工作。也許jQuery被包含在你的函數被定義之後,所以它不再存在。

+0

它不適合我。我已經在網上發佈它供您參考。請在這裏檢查。在博客類別上的任何右側的4個選項卡[鏈接](http://inimitablesystems.com/demos/interactin/troyelliott/careers) 點擊一下,你會了解我的意思。謝謝 – Omicans

0

使用.live和.die代替.delegate和.undelegate對螢火蟲扔在我的線條和它的作品。

相關問題