【发布时间】:2011-10-13 09:21:49
【问题描述】:
为什么会出现语法错误?
$(document).ready(function() {
$.post(some_url + "ajax/get_matching_products", {
user_id : user_id_hash,
url : user_page_url
}, function(data) {
var callback = eval("(" + data + ")");
//alert(callback.output);
if(callback.result == 1) {
$("#something").prepend(callback.output);
}
});
/*
* PAGINATION
*/
$.fn.paginate = function(options) {
var options = jQuery.extend({
content: 'TBODY TR',
limit: 20
},options);
return this.each(function() {
var page = {};
page.parent = $(this),
page.content = (page.parent.is('TABLE')) ? page.parent.find(options.content) : page.parent.children(options.content),
page.total = Math.ceil(page.content.size() / options.limit),
page.display = page.content.css('display'),
page.prev = 0,
page.next = 2;
page.content.slice(options.limit).css('display', 'none').addClass('ui-helper-hidden');
$(document.createElement("DIV")).addClass("link-container")[(page.parent.is('TABLE')) ? 'insertAfter' : 'appendTo'](this);
page.linkContainer = (page.parent.is('TABLE')) ? page.parent.next('.link-container:first') : page.parent.find('.link-container:first');
$(document.createElement("A")).addClass("pagination-link previous ui-state-default").attr('href', 'previous').attr('title', 'Previous page').attr('rel', 'nofollow').text('<').appendTo(page.linkContainer);
for(var num=0; num < page.total; num++){
var offset = num + 1,
min = (offset * options.limit) - (options.limit),
max = (offset * options.limit);
$(document.createElement("A")).addClass("pagination-link numeric ui-state-default").attr('href', offset).attr('title', 'Page '+offset+'').attr('rel', 'nofollow').text(offset).appendTo(page.linkContainer);
page[offset] = page.content.slice(min, [max]);
};
$(document.createElement("A")).addClass("pagination-link next ui-state-default").attr('href', 'next').attr('title', 'Next page').attr('rel', 'nofollow').text('>').appendTo(page.linkContainer);
page.wraps = page.linkContainer.find('.paginationWrap');
page.anchors = page.linkContainer.find('A');
page.anchors.bind('mouseenter mouseleave', function(e){
this.self = $(this);
(e.type === 'mouseenter') ? this.self.addClass('ui-state-hover') : this.self.removeClass('ui-state-hover');
}).eq(1).addClass('ui-state-active');
page.anchors.bind('click', function(e){
e.preventDefault();
if($(this).is('.ui-state-active')){
return false;
}
this.siblings = $(this).siblings('.ui-state-active:first');
if($(this).is('.previous')) {
if(page.prev === 0){
return false;
};
this.link = $(this).siblings('A[href= ' + page.prev + ']');
this.link.add(this.siblings).toggleClass('ui-state-active');
page.content.css('display', 'none').addClass('ui-helper-hidden');
page[page.prev].css('display', page.display).removeClass('ui-helper-hidden');
page.prev--,
page.next--;
} else if($(this).is('.next')) {
if(page.next === (page.total + 1)){
return false;
};
this.link = $(this).siblings('A[href= ' + page.next + ']');
this.link.add(this.siblings).toggleClass('ui-state-active');
page.content.css('display', 'none').addClass('ui-helper-hidden');
page[page.next].css('display', page.display).removeClass('ui-helper-hidden');
page.prev++,
page.next++;
} else {
this.link = $(this);
this.link.add(this.siblings).toggleClass('ui-state-active');
this.offset = parseInt(this.link.attr('href'));
page.content.css('display', 'none').addClass('ui-helper-hidden');
page[this.offset].css('display', page.display).removeClass('ui-helper-hidden');
page.prev = this.offset - 1,
page.next = this.offset + 1;
}
});
return this;
});
};
});
这是否有助于发现错误?
JavaScript 错误:'clients/blabla/something/js/widget.js: (275): html 错误: 找不到脚本标签的结尾
Firebug 给出这个错误:
语法错误 $(函数());\n
如果我将虚拟/静态内容放到表格中,它同时拥有这两个部分效果很好,分页效果也很好。但是当它们在一起时,它给了我这个错误:/
【问题讨论】:
-
请将代码剥离到相关部分,没有人会经历这一切。
-
嗯,问题是我不知道问题出在哪里,那我该如何去掉呢?
-
我已经放弃了格式化代码,第一段和第二段代码有一些不匹配的括号,其余的没有检查。
-
@adad1:注释掉代码的内部部分,直到不再有语法错误。这样,您就可以定位错误。
-
FireBug 通常表示错误所在的行。
标签: javascript jquery pagination