Changeset 5360
- Timestamp:
- 04/30/08 05:02:49 (8 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/plugins/uiTableFilter/jquery.uitablefilter.js
r5109 r5360 26 26 var words = phrase.toLowerCase().split(" "); 27 27 28 var success = function(elem) { elem.show() } 29 var failure = function(elem) { elem.hide() } 28 // these function pointers may change 29 var matches = function(elem) { elem.show() } 30 var noMatch = function(elem) { elem.hide(); new_hidden = true } 31 var getText = function(elem) { return elem.text() } 30 32 31 33 if( column ) { … … 33 35 jq.find("thead > tr:last > th").each( function(i){ 34 36 if( $(this).text() == column ){ 35 index = i; 36 return false; 37 index = i; return false; 37 38 } 38 39 }); 39 var iselector = "td:eq(" + index + ")"; 40 41 var search_text = function( ){ 42 var elem = jQuery(this); 43 jQuery.uiTableFilter.has_words( jQuery(elem.find(iselector)).text(), words ) ? 44 success(elem) : failure(elem); 45 } 46 } 47 else { 48 var search_text = function(){ 49 var elem = jQuery(this); 50 jQuery.uiTableFilter.has_words( elem.text(), words ) ? elem.show() : elem.hide(); 40 if( index == null ) throw("given column: " + column + " not found") 41 42 getText = function(elem){ return jQuery(elem.find( 43 ("td:eq(" + index + ")") )).text() 51 44 } 52 45 } … … 60 53 { this.last_phrase = phrase; return false; } 61 54 62 success = function(elem) { elem.hide(); new_hidden = true; } 63 failure = function(elem) {;} 64 var words = words[-1]; 65 jq.find("tbody tr:visible").each( search_text ) 55 var words = words[-1]; // just search for the newest word 56 57 // only hide visible rows 58 matches = function(elem) {;} 59 var elems = jq.find("tbody > tr:visible") 66 60 } 67 61 else { 68 62 new_hidden = true; 69 jq.find("tbody > tr").each( search_text );63 var elems = jq.find("tbody > tr") 70 64 } 71 65 66 elems.each(function(){ 67 var elem = jQuery(this); 68 jQuery.uiTableFilter.has_words( getText(elem), words, false ) ? 69 matches(elem) : noMatch(elem); 70 }); 71 72 72 last_phrase = phrase; 73 if( new_hidden ) ifHidden();73 if( ifHidden && new_hidden ) ifHidden(); 74 74 return jq; 75 75 }; 76 77 // caching for speedup 76 78 jQuery.uiTableFilter.last_phrase = "" 77 79
