瀏覽代碼

Protect the initialization with a try ... catch, in order to protect that rest of the page in case of trouble.

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@3074 a333f486-631f-4898-b8df-5754b55c2be0
dflaven 11 年之前
父節點
當前提交
97a1413d52
共有 1 個文件被更改,包括 57 次插入46 次删除
  1. 57 46
      js/jquery.tablesorter.pager.js

+ 57 - 46
js/jquery.tablesorter.pager.js

@@ -447,59 +447,70 @@ function sprintf(format, etc) {
 			
 			this.construct = function(settings) {
 				
-				return this.each(function() {	
-					
-					config = $.extend(this.config, $.tablesorterPager.defaults, settings);
+				return this.each(function() {
+
+					try
+					{
+						config = $.extend(this.config, $.tablesorterPager.defaults, settings);
 
-					var table = this, pager = config.container;
+						var table = this, pager = config.container;
 				
-					this.ajax_request = null;
+						this.ajax_request = null;
 					
-					config.selectedSize = parseInt($(".pagesize",pager).val());
-					setPageSize(table,config.selectedSize, false);
-					restoreParams(table, config);
+						config.selectedSize = parseInt($(".pagesize",pager).val());
+
+						setPageSize(table,config.selectedSize, false);
+						restoreParams(table, config);
 					
-					//$(this).trigger("appendCache"); // Load the data
-					//console.log($.tablesorterPager);
-					applySelection(table);
+						//$(this).trigger("appendCache"); // Load the data
+						//console.log($.tablesorterPager);
+						applySelection(table);
 
-					$('.gotopage',pager).click(function() {
-						var idx = $(this).attr('page');
-						table.config.page = idx;
-						moveToPage(table);
-					});
+						$('.gotopage',pager).click(function() {
+							var idx = $(this).attr('page');
+							table.config.page = idx;
+							moveToPage(table);
+						});
 
-					$(config.cssFirst,pager).click(function() {
-						moveToFirstPage(table);
-						return false;
-					});
-					$(config.cssNext,pager).click(function() {
-						moveToNextPage(table);
-						return false;
-					});
-					$(config.cssPrev,pager).click(function() {
-						moveToPrevPage(table);
-						return false;
-					});
-					$(config.cssLast,pager).click(function() {
-						moveToLastPage(table);
-						return false;
-					});
-					$(config.cssPageSize,pager).change(function() {
-						setPageSize(table,parseInt($(this).val()), true);
-						return false;
-					});
-					$(table).find(':checkbox.checkAll').removeAttr('onclick').click(function() {
-						return checkAll(table, pager, this.checked);
-					});
+						$(config.cssFirst,pager).click(function() {
+							moveToFirstPage(table);
+							return false;
+						});
+						$(config.cssNext,pager).click(function() {
+							moveToNextPage(table);
+							return false;
+						});
+						$(config.cssPrev,pager).click(function() {
+							moveToPrevPage(table);
+							return false;
+						});
+						$(config.cssLast,pager).click(function() {
+							moveToLastPage(table);
+							return false;
+						});
+						$(config.cssPageSize,pager).change(function() {
+							setPageSize(table,parseInt($(this).val()), true);
+							return false;
+						});
+						$(table).find(':checkbox.checkAll').removeAttr('onclick').click(function() {
+							return checkAll(table, pager, this.checked);
+						});
 					
-					$(table).bind('load_selection', function() {
-						loadSelection(table, pager);
-						applySelection(table);
-					});
-					$(table).bind('check_all', function() {
-						checkAll(table, pager, true);
-					});
+						$(table).bind('load_selection', function() {
+							loadSelection(table, pager);
+							applySelection(table);
+						});
+						$(table).bind('check_all', function() {
+							checkAll(table, pager, true);
+						});
+					}
+					catch(err)
+					{
+						if (console && console.log)
+						{
+							console.log(err);
+						}
+					}
 				});
 			};
 		}