2012-07-16 98 views
3

我試圖將滑塊添加到網站。jQuery問題 - 未捕獲TypeError:無法讀取未定義的屬性'瀏覽器'

當我在本地測試,它工作正常在一個標準的HTML文件,但是當我嘗試將其傳送到WordPress站點我不斷收到此錯誤:

Uncaught TypeError: Cannot read property 'browser' of undefined

,並指出在代碼中第11行對於這個問題

isIE = $.browser.msie, 

我不知道發生了什麼事,因爲它工作在基本的文件,而不是WordPress的直播現場。

這裏是滑塊的jquery文件 - 我確定它的一些簡單的,但我只是沒有弄明白。

感謝 瑞安

var current  = 0, 
imagenum   = {}, 
heroName   = {}, 
speed    = 500, 
messageDelay  = 10000, 
expanded   = false, 
animating   = false, 
easeType   = 'easeOutQuint', 
scrollEase  = 'easeInOutExpo', 
easeTypeCB  = 'cubic-bezier(0.770, 0.000, 0.175, 1.000)', 
isIE    = $.browser.msie, 
currenth   = 0, 
anim    = false, 
isLoading   = false, 
autoHero   = '', 
heroSlideLoading = false, 
heroSlideDuration = 1000, 
gt1000   = false, 
scrollSpeed  = 1000, 
scrollAnimation = false, 
autoCarousel  = true, 
heros, winw, heroc, herobtns, herobg, wbTimeout, image2, heromax, currentbg, tabindex, tabDiv, showing, tabLinks, clientList, num, anchor_max, anchors; 


$(document).ready(function(){ 

    checkHash(); 
    heroCarousel(); 

}); 


function getHash(){ 
var hash = window.location.hash; 
return hash.substring(1); 
} 


function checkHash(){ 
var currentHash = getHash(); 
if(currentHash.length > 0){ 
    var src; 
    var projectLink; 

    if(currentHash.charAt(0) == '!'){ 
     src   = currentHash.substr(1).replace('-', ' '); 
     projectLink = $.inArray(src, projectName); 

     scrollToProject((projectLink+1)); 
    } else if(currentHash.charAt(0) == '@'){ 
     src   = currentHash.substr(1); 
     projectLink = $.inArray(src, heroName); 

     if(projectLink > -1){ 
      loadHero(projectLink); 
      $('.slider-wrapper img').imagesLoaded(function(){ 
       autoCarousel = false; 
      }); 
     } 
    } 
    } 
} 

function getWindowWidth(){ 
return $(window).width(); 
} 


function heroCarousel(auto){ 

heros = $('.hero'); 
heroc = $('#hero-carousel'); 
herobtns = $('.slider-wrapper .pager-btn'); 
herobg = $('.heroimgbg'); 
heromax = $('.hero').length-1; 

if(heroc.size()){ 



    $(window).resize(function(){ 

     winw = $(window).width(); 
     heroc.width(winw * (heromax+1)); 
     $('.hero, .heroimgbg').width(winw); 



     var heroPos = -(winw * (currenth)); 
     if(isIE){ 
      heroc.animate({ 
       'left' : heroPos 
      }, 0); 
     } else { 
      heroc.css({ 
       '-webkit-transform' : 'translate3d(' + heroPos + 'px, 0, 0)', 
       '-moz-transform' : 'translate(' + heroPos + 'px, 0)', 
       '-o-transform' : 'translate(' + heroPos + 'px, 0)', 
       '-ms-transform' : 'translate(' + heroPos + 'px, 0)', 
       'transform' : 'translate(' + heroPos + 'px, 0)', 
       '-webkit-transition': 'none', 
       '-moz-transition': 'none', 
       '-o-transition': 'none', 
       '-ms-transition': 'none', 
       'transition': 'none' 
      }); 
     } 
     isLoading = false; 
     anim  = false; 
     loadHero(currenth); 

    }).resize(); 

    //previous/next buttons 
    herobtns.click(function(){ 
     if($(this).hasClass('next')){ 
      loadHero('next'); 
     } else { 
      loadHero('prev'); 
     } 
     autoCarousel = false; 

     return false; 
    }); 
    //simple nav buttons 
    snav.click(function(){ 
     var ind = $('.simple-nav li a').index(this); 
     loadHero(ind); 
     autoCarousel = false; 

     return false; 
    }); 

      loadHero(0); 

    } 


} 

function loadHero(dir){ 
if(!isLoading){ 
    isLoading = true; 

    if(dir == 'next'){ 
     if(currenth >= heromax){ 
      currenth = 0; 
     } else { 
      currenth++; 
     } 

    } else if(dir == 'prev') { 
     if(currenth <= 0){ 
      currenth = heromax; 
     } else { 
      currenth--; 
     } 
    } else { 
     currenth = dir; 
    } 

    var slide = $('#hero-carousel .hero').eq(currenth); 
    slide.addClass('next-slide'); 

    //load current slide 
    if(getWindowWidth() > 1200){ 
     if(!slide.hasClass('loaded1200')){ 
      slide.removeClass('loaded'); 
      $('.tab-container:eq(0) h1').hide(); 
      $('#spinner').show(); 


      image2 = $('<img src="'+$('.heroimgbg'+currenth).attr('data-src')+'" alt="" />'); 
      currentbg = $('.heroimgbg'+currenth); 
      currentbg.html(image2); 


      if(slide.find('.heroimg').length){ 


       //load carousel images 
       slide.find('.heroimg').each(function(){ 
        var image; 
        if(getWindowWidth() > 1200){ 
         image = $(this).attr('data-src-large') ? $('<img src="'+$(this).attr('data-src-large')+'" alt="" />') : $('<img src="'+$(this).attr('data-src')+'" alt="" />'); 
        } else { 
         image = $('<img src="'+$(this).attr('data-src')+'" alt="" />'); 
        } 
        $(this).html(image); 
        //image.delay(500).animate({'opacity': 1},500, easeType); 
       }); 
       slide.find('img').imagesLoaded(function(){ 
        changeTheme(slide); 
        slide.addClass('loaded1200'); 
        //animate carousel 
        animHero(dir); 
       }); 


      } else { 
       changeTheme(slide); 
       slide.addClass('loaded1200'); 
       animHero(dir); 
      } 
     } else { 
      changeTheme(slide); 
      animHero(dir); 
     } 
    } else { 
     if(!slide.hasClass('loaded')){ 
      slide.removeClass('loaded1200'); 
      $('.tab-container:eq(0) h1').hide(); 
      $('#spinner').show(); 


      image2 = $('<img src="'+$('.heroimgbg'+currenth).attr('data-src')+'" alt="" />'); 
      currentbg = $('.heroimgbg'+currenth); 
      currentbg.html(image2); 


      if(slide.find('.heroimg').length){ 


       //load carousel images 
       slide.find('.heroimg').each(function(){ 
        var image; 
        if(getWindowWidth() > 1200){ 
         image = $(this).attr('data-src-large') ? $('<img src="'+$(this).attr('data-src-large')+'" alt="" />') : $('<img src="'+$(this).attr('data-src')+'" alt="" />'); 
        } else { 
         image = $('<img src="'+$(this).attr('data-src')+'" alt="" />'); 
        } 
        $(this).html(image); 
        image.delay(500).animate({'opacity': 1},500, easeType); 
       }); 
       slide.find('img').imagesLoaded(function(){ 
        changeTheme(slide); 
        slide.addClass('loaded'); 
        //animate carousel 
        animHero(dir); 
       }); 


      } else { 
       changeTheme(slide); 
       slide.addClass('loaded'); 
       animHero(dir); 
      } 
     } else { 
      changeTheme(slide); 
      animHero(dir); 
     } 
    } 
    } 
} 

function changeTheme(slide){ 
$('.tab-container:eq(0) h1').show(); 
$('#spinner').hide(); 

//set theme 
if(slide.attr('data-theme')){ 
    $('body').attr('class', 'anchors'); 
    $('body').addClass('theme-' + slide.attr('data-theme')); 
} 
} 


function animHero(dir){ 

//$('body').css('cursor', 'auto'); 
if(!anim){ 
    anim = true; 
    var finishAnim; 

    //load background image 
    var image2src = $('.heroimgbg'+currenth).attr('data-src'); 

    if(currenth !== dir || dir === 0){ 
     currentbg = $('.heroimgbg'+currenth); 
     $('.heroimgbg').each(function(){ 
      if($(this).css('opacity') > 0){ 
       $(this).animate({'opacity': 0}, heroSlideDuration, easeType); 
      } 
     }); 
     currentbg.css('background-image', 'url(' + image2src + ')').delay(500).animate({'opacity': 1}, heroSlideDuration, easeType); 
    } 

    //clear classes 
    $('.hero').removeClass('exit enter fromleft fromright active'); 
    //$('.simple-nav li').removeClass('active'); 


    var currentSlide = $('.hero:eq('+currenth +')'); 
    currentSlide.addClass('enter'); 

    $('.hero:gt('+ currenth +')').addClass('fromright'); 
    $('.hero:lt('+ currenth +')').addClass('fromleft'); 


    /*heroc.animate({ 
     'left' : (currenth * -winw), 
     leaveTransforms:true 
    }, heroSlideDuration, 'easeInOutQuint', function(){ 
     anim  = false; 
     isLoading = false; 
     $('.hero:eq('+currenth +')').addClass('active'); 
    }).css('z-index','20');*/ 

    var heroPos = (currenth * -winw); 
    if(isIE){ 
     heroc.animate({ 
      'left' : heroPos 
     }, heroSlideDuration, 'easeInOutQuint', function(){ 
      anim  = false; 
      isLoading = false; 
      $('.hero:eq('+currenth +')').addClass('active'); 
     }); 
    } else { 
     heroc.css({ 
      '-webkit-transform' : 'translate3d(' + heroPos + 'px, 0, 0)', 
      '-moz-transform' : 'translate(' + heroPos + 'px, 0)', 
      '-o-transform' : 'translate(' + heroPos + 'px, 0)', 
      '-ms-transform' : 'translate(' + heroPos + 'px, 0)', 
      'transform' : 'translate(' + heroPos + 'px, 0)', 
      '-webkit-transition': '-webkit-transform 1s ' + easeTypeCB, 
      '-moz-transition': '-moz-transform 1s ' + easeTypeCB, 
      '-o-transition': '-o-transform 1s ' + easeTypeCB, 
      '-ms-transition': '-ms-transform 1s ' + easeTypeCB, 
      'transition': 'transform 1s ' + easeTypeCB 
     }); 
     clearTimeout(finishAnim); 
     finishAnim = setTimeout(function(){anim = false; isLoading = false;}, 1000); 
     $('.hero:eq('+currenth +')').addClass('active'); 
    } 

    clearTimeout(autoHero); 
    if(autoCarousel === true){ 
     autoHero = setTimeout(function(){ 
      loadHero('next'); 
     }, 6000); 
    } 

} 
} 


var showSwitch = ($('.slider-wrapper').length) ? true : false; 
//var scrollOffset = -30; 


(function($,undefined){$.fn.imagesLoaded=function(callback){var $this=this,$images=$this.find("img").add($this.filter("img")),len=$images.length,blank="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";function triggerCallback(){callback.call($this,$images)}function imgLoaded(){if(--len<=0&&this.src!==blank){setTimeout(triggerCallback);$images.unbind("load error",imgLoaded)}}if(!len)triggerCallback();$images.bind("load error",imgLoaded).each(function(){if(this.complete||this.complete=== 
undefined){var src=this.src;this.src=blank;this.src=src}});return $this}})(jQuery); 


(function(){var special=jQuery.event.special,uid1="D"+ +new Date,uid2="D"+(+new Date+1);special.scrollstart={setup:function(){var timer,handler=function(evt){var _self=this,_args=arguments;if(timer)clearTimeout(timer);else{evt.type="scrollstart";jQuery.event.handle.apply(_self,_args)}timer=setTimeout(function(){timer=null},special.scrollstop.latency)};jQuery(this).bind("scroll",handler).data(uid1,handler)},teardown:function(){jQuery(this).unbind("scroll",jQuery(this).data(uid1))}};special.scrollstop= 
{latency:300,setup:function(){var timer,handler=function(evt){var _self=this,_args=arguments;if(timer)clearTimeout(timer);timer=setTimeout(function(){timer=null;evt.type="scrollstop";jQuery.event.handle.apply(_self,_args)},special.scrollstop.latency)};jQuery(this).bind("scroll",handler).data(uid2,handler)},teardown:function(){jQuery(this).unbind("scroll",jQuery(this).data(uid2))}}})(); 
+1

好像你正在啓動你的代碼到早期或WordPress的沒有加載jQuery。您也可以嘗試將$ .browser.msie更改爲jQuery.browser.msie – 2012-07-16 05:58:10

+0

我將所有$都更改爲jQuery,並且工作正常。感謝您的幫助 – strohy85 2012-07-16 06:24:49

+0

可能重複的[TypeError:'undefined'不是一個函數(評估'$(document)')](http://stackoverflow.com/questions/7975093/typeerror-undefined-is-not-a功能評估文檔) – fuxia 2012-07-16 08:33:08

回答

14

默認情況下,我認爲WordPress的jQuery的提出到「無衝突」的模式,因此,使用$jQuery的快捷方式將無法正常工作。我想這是你的問題,因爲錯誤表明$是未定義的。

從WordPress文檔:

In order to use the default jQuery shortcut of $, you can use the following wrapper around your code:

jQuery(document).ready(function($) { 
    // $() will work as an alias for jQuery() inside of this function 
}); 

或者,你可以使用jQuery徘徊無論你已經在你的代碼中使用$:

isIE = jQuery.browser.msie 

您可以在Wordpress docs閱讀更多關於這一點。

+0

謝謝你,我把所有$都改成了jQuery,它工作。 – strohy85 2012-07-16 06:17:31

+0

謝謝我已經完成了相同的工作。 – 2015-05-31 11:35:27

1

在文件editor_plugin.js(位於ibrowser根插件文件夾)註釋掉行:

tinymce.ScriptLoader.load(url + '/interface/common.js'); 

並添加此

$.getScript(url+'/interface/common.js'); 

執行相同的editor_plugin_src.js爲好。

應該修復。

相關問題