2012-11-28 57 views
0

我使用以下腳本構建網站。有時這個JavaScript崩潰有時不會。奇怪的是,當我在第三行添加警告框後,sliderLeft定義,腳本永遠不會崩潰。有人請幫忙。 我對不同的輸出使用兩次相同的函數。JavaScript有時崩潰,有時不會?

即使我刪除第二個類似的功能我仍然收到錯誤。請幫我解決一下這個。

$(window).load(function() {    
    var sliderLeft=$('#thumbScroller .container').position(); 
    //alert(sliderLeft); 
// padding=$('#outer_container').css('paddingRight').replace("px", ""); 
    var sliderWidth=$(window).width() 
    $('#thumbScroller').css('width',sliderWidth); 
    var totalContent=0; 
    $('#thumbScroller .content').each(function() { 
     totalContent+=$(this).innerWidth(); 
     $('#thumbScroller .container').css('width',totalContent); 
    }); 
    //alert(sliderLeft); 
    $('#thumbScroller').mousemove(function(e){ 
     if($('#thumbScroller .container').width()>sliderWidth){ 
      var mouseCoords=(e.pageX - this.offsetLeft); 
      var mousePercentX=mouseCoords/sliderWidth; 
      var destX=-(((totalContent-(sliderWidth))-sliderWidth)*(mousePercentX)); 
      var thePosA=mouseCoords-destX; 
      var thePosB=destX-mouseCoords; 
      var animSpeed=600; //ease amount 
      var easeType='easeOutCirc'; 
      if(mouseCoords==destX){ 
       $('#thumbScroller .container').stop(); 
      } 
      else if(mouseCoords>destX){ 
       //$('#thumbScroller .container').css('left',-thePosA); //without easing 
       $('#thumbScroller .container').stop().animate({left: -thePosA}, animSpeed,easeType); //with easing 
      } 
      else if(mouseCoords<destX){ 
       //$('#thumbScroller .container').css('left',thePosB); //without easing 
       $('#thumbScroller .container').stop().animate({left: thePosB}, animSpeed,easeType); //with easing 
      } 
     } 
    }); 
    $('#thumbScroller .thumb').each(function() { 
     $(this).fadeTo(fadeSpeed, 0.6); 
    }); 
    var fadeSpeed=200; 
    $('#thumbScroller .thumb').hover(
    function(){ //mouse over 
     $(this).fadeTo(fadeSpeed, 1); 
    }, 
    function(){ //mouse out 
     $(this).fadeTo(fadeSpeed, 0.6); 
    } 
); 
}); 
$(window).resize(function() { 
    //$('#thumbScroller .container').css('left',sliderLeft); //without easing 
    $('#thumbScroller .container').stop().animate({left: sliderLeft}, 400,'easeOutCirc'); //with easing 
    $('#thumbScroller').css('width',$(window).width()); 
    sliderWidth=$(window).width(); 
}); 

我只是刪除第二個功能爲每建議,但還是不行 取出幾行和腳本崩潰,並且不顯示任何錯誤

+2

崩潰如何?它會導致瀏覽器崩潰,或者根本不運行? –

+0

請定義一個'crash'請 –

+0

是所有的瀏覽器崩潰,還是特別的? –

回答

0

你有2個$(window).load(function() {...});函數定義。

嘗試梳理成1 $(window).load(function() {...});調用。

+0

我只是刪除第二個函數來發現錯誤,仍然得到錯誤,並在這一行上獲取錯誤padding = $('#outer_container')。css('paddingRight' ).replace(「px」,「」);我在css中定義了outer_container id以及填充權,但仍然沒有在我的錯誤位置下 –

+0

你得到的錯誤是什麼? – 3dgoo

+0

這是錯誤 類型錯誤:$(...)的CSS(...)是未定義 [打破這個錯誤] \t 填充= $( '#outer_container')的CSS( 'paddingRight')。替換(「px」,「」); 我在css中定義了outer_container id以及填充權,但仍然沒有站在我的錯誤位置 –

0

只是一個想法...

硬盤沒有看到問題(如3dgoo說試試把你的代碼放到jsfiddle.net)說,但你肯定在DOM準備好你的代碼執行?

它解釋說,你放在代碼中的'alert'通過給它一些時間來完成加載來解決問題。

+0

thankx重播,你可能是對的,因爲我使用$(window).load函數爲上面的腳本。最初我通過ajax加載頁面,所以我得到www.example.com./#/test url。我的朋友指出我這個錯誤。所以我將使用trigger()函數來調用窗口函數。抱歉,我無法在jsfiddle.net中上傳html,css和javascript,因爲我爲我的項目使用了6個不同的javascript。如果你知道trigger()函數與我共享的任何好例子。謝謝 –

+0

沒有使用trigger()的例子,但你也可以: - 在使用它們之前測試你的元素(例如:$('#thumbScroller')) - 使用$(document).ready(function(){... }); – Sylv21

相關問題