我收到Uncaught TypeError: undefined is not a function
错误,其数量正在大幅增加甚至超过3000次。如下图所示。
我也是三 我在网站上使用的其他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;
}
});
}
答案 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
答案 1 :(得分:1)
您也可以尝试将其添加到标题中:
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
这将使一些不兼容的东西与新的jQuery版本一起使用。
这不是最好的解决方案,但如果你赶时间,它可以提供很多帮助。