2012-07-16 67 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为好。

应该修复。

相关问题