2014-04-28 46 views
4

我得到Uncaught TypeError: undefined is not a function錯誤,並且其數量甚至超過3000倍而增加很多。如下圖所示。未捕獲TypeError:undefined不是函數

Jquery error

jquery error undefined

我也三叔,我用我已經下文提到的相同順序在網站上其他js文件 列表。

1.3.2/jquery.min.js 
1.7.2/jquery-ui.min.js 
ui.stars.min.js 
jquery.qtip-1.0.0-rc3.min.js 
jquery.fancybox-1.2.6.pack.js 

我試着將jquery.min.js的版本更改爲1.9.1。但我仍然收到錯誤。 和我也使用

<script src="cufon/cufon-yui.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    //statement 
</script> 

這裏是我的自定義JavaScript這也包括在該網站

$(document).ready(function() { 
    /* Executed on DOM load */ 
    $("#slogan-addbutton").fancybox({ 
    'zoomSpeedIn': 600, 
    'zoomSpeedOut': 500, 
    'easingIn': 'easeOutBack', 
    'easingOut': 'easeInBack', 
    'hideOnContentClick': false, 
    'padding': 15 
    }); 
/* Listening for keyup events on fields of the "Add a note" form: */ 
    $('.pr-body,.pr-author').live('keyup',function(e){ 
     if(!this.preview) 
      this.preview=$('#fancy_ajax .note'); 

     /* Setting the text of the preview to the contents of the input field, and stripping all the HTML tags: */ 
     this.preview.find($(this).attr('class').replace('pr-','.')).html($(this).val().replace(/<[^>]+>/ig,'')); 
    }); 

    /* Changing the color of the preview note: */ 
    $('.color').live('click',function(){ 
     $('#fancy_ajax .note').removeClass('yellow green blue').addClass($(this).attr('class').replace('color','')); 
    }); 

    /* The submit button: */ 
    $('#note-submit').live('click',function(e){ 

     if($('.pr-body').val().length<4) 
     { 
      alert("The note text is too short!") 
      return false; 
     } 

     if($('.pr-author').val().length<1) 
     { 
      alert("You haven't entered your name!") 
      return false; 
     } 

     $(this).replaceWith('<img src="img/ajax_load.gif" style="margin:30px auto;display:block" />'); 

     var data = { 
      'zindex' : ++zIndex, 
      'body'  : $('.pr-body').val(), 
      'author'  : $('.pr-author').val(), 
      'color'  : $.trim($('#fancy_ajax .note').attr('class').replace('note','')) 
     }; 


     /* Sending an AJAX POST request: */ 
     $.post('post.php',data,function(msg){ 

      if(parseInt(msg)) 
      { 
       /* msg contains the ID of the note, assigned by MySQL's auto increment: */ 

       var tmp = $('#fancy_ajax .note').clone(); 

       tmp.find('span.data').text(msg).end().css({'z-index':zIndex,top:0,left:0}); 
       tmp.appendTo($('#main')); 

       make_draggable(tmp) 
      } 

      $("#addButton").fancybox.close(); 
     }); 

     e.preventDefault(); 
    }) 

    $('.note-form').live('submit',function(e){e.preventDefault();}); 


    $(".star-rating").stars(); 
    /* Converts all the radio groups into star ratings */ 

    $("#quotes-hide").mousemove(function (e) { 
    /* The scrollable quote container */ 

    if (!this.hideDiv) { 
     /* These variables are initialised only the firts time the function is run: */ 

     this.hideDiv = $(this); 
     this.scrollDiv = $('#quotes-slide'); 

     this.pos = this.hideDiv.offset(); 
     this.pos.top += 20; 
     /* Adding a 20px offset, so that the scrolling begins 20px from the top */ 


     this.slideHeight = this.scrollDiv.height(); 

     this.height = this.hideDiv.height(); 
     this.height -= 20; 
     /* Adding a bottom offset */ 

     this.totScroll = this.slideHeight - this.height; 
    } 

    this.scrollDiv.css({ 
     /* Remember that this.scrollDiv is a jQuery object, as initilised above */ 

     marginTop: '-' + this.totScroll * (Math.max(e.pageY - this.pos.top, 0)/this.height) + 'px' 
     /* Assigning a negative top margin according to the position of the mouse cursor, passed 
       with e.pageY; It is relative to the page, so we substract the position of the scroll container */ 
    }); 

    }); 


    $('.thumb').click(function (e) { 
    /* Executed once a quote from the list on the right is clicked */ 

    var obj = quotes[parseInt(e.target.id.replace('q-', '')) - 1]; 
    /* The e.target.id of the quote corresponds to its position in the quotes array */ 

    $('#slogan-quote-content').fadeOut('fast', function() { 
     /* This is a callback function, run once the quote contaier on the left has faded out */ 

     if (!obj) return false; 

     /* Replacing the contents of the quote text and author */ 

     $(this).find('h1').html(obj.txt); 
     $(this).find('span').html(obj.author); 

     /* Changing the background color */ 

     if (obj.bgc) $('body').stop().animate({ 
     backgroundColor: obj.bgc 
     }, 'slow'); 

     /* Generating the radio boxes for the tool-tip star rating */ 

     var tmpstr = ''; 
     for (var z = 0; z < 5; z++) { 
     tmpstr += '<input type="radio" name="voteQ" value="' + (z + 1) + '" '; 

     if (z + 1 == obj.rating) tmpstr += 'checked=checked '; 
     if (parseInt(obj.voted)) tmpstr += 'disabled="disabled" '; 

     tmpstr += '/>'; 
     } 

     tmpstr = '<div id="voteRating">' + tmpstr + '</div>'; 

     /* Updating the content of the tool-tip and converting it to a star rating */ 
     $('#slogan-box').qtip("api").updateContent(tmpstr); 

     $('#voteRating').stars({ 
     cancelShow: false, 
     oneVoteOnly: true, 
     callback: function (ui, type, value) { 
      vote(obj, value); 
     } 
     }); 

     /* Regenerating the cufon text replacement for the new quote text on the left */ 
     Cufon.refresh(); 

     /* Show the new quote with a fade-in effect */ 
     $(this).fadeIn('fast'); 
    }); 
    }); 

    /* Creating and configuring the tool-tip with the help of the qtip plugin */ 
    $('#slogan-box').qtip({ 
    content: { 
     text: 'This is an active list element', 
     title: { 
     text: 'Vote for this quote' 
     }, 
     prerender: true 
    }, 

    show: 'mouseover', 
    hide: { 
     delay: 2000, 
     fixed: true, 
     when: 'mouseout' 
    }, 
    position: { 
     corner: { 
     target: 'rightMiddle', 
     tooltip: 'leftMiddle' 
     }, 
     adjust: { 
     y: 20 
     } 
    }, 
    style: { 
     border: { 
     width: 2, 
     radius: 6 
     }, 
     name: 'light', 
     tip: 'leftMiddle' 
    } 
    }); 

    /* After the page has loaded, click the first quote on the right */ 
    setTimeout(function() { 
    $('#q-1').click(); 
    }, 250); 
}); 

/* The global array holding all the data about the quotes. Filled in on page load. */ 
var quotes = new Array(); 

function fillData(obj) { 
    quotes.push(obj); 
} 

function vote(ob, value) { 
    /* Sending the votes to vote.php */ 
    $.post('vote.php', { 
    qid: ob.id, 
    vote: value 
    }, function (data) { 

    if (data == "1") { 
     /* If the vote was saved successfully, update the quote data.. */ 
     ob.voted = 1; 
     ob.votes = ob.votes + 1; 
     ob.vsum = ob.vsum + parseInt(value); 
     ob.rating = Math.round(ob.vsum/ob.votes); 

     /* ..and update the star rating */ 
     $('#rating-' + ob.id).stars("select", ob.rating); 
     quotes[ob.id - 1] = ob; 
    } 
    }); 
} 
+8

jQuery v1.3.2 **已超過5年**,爲什麼還在使用它? –

+0

使用非縮小版本的jQuery文件...然後檢查錯誤的來源 –

+0

我試圖將其更改爲新版本..但是這並不能幫助擺脫此問題。相反,我只在屏幕上看不到任何東西。 –

回答

6

這可能是由於其他的jQuery文件包括在內。

1.7.2/jquery-ui.min.js 
ui.stars.min.js 
jquery.qtip-1.0.0-rc3.min.js 
jquery.fancybox-1.2.6.pack.js 

這些文件可能沒有被更新爲與jquery.min.js(1.9.1)兼容。其中一些文件可能正在使用jQuery 1.9.1版本中已棄用的函數。

因此,請嘗試找到這些文件的兼容版本,並用新版本替換。 然後使用1.9.1中提供的新方法更改已棄用的方法。

例如:

.live(events, function) //was available in older versions and deprecated in 1.9.1 jquery 

這已被映射到:

.on(eventType, selector, function) //in 1.9.1 jquery 
+0

謝謝你幫我節省了很多時間 –

1

您也可以嘗試把它添加到標題:

<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script> 

這將使一些未對應事情與新的jQuery版本一起工作。

這不是最好的解決方案,但是如果你急着它可以幫助很多。

相關問題