Hoi,
Voor een website ben ik bezig met een liveSearch welke ik op internet heb gevonden.
De search heeft een input en een unordered list
Via jquery laad ik data in de lijst:
Maar nu wordt de data wel geladen maar de search werkt niet meer.
Wanneer ik statische informatie in de lijst laad. Dus:
Werkt de search wel gewoon. Ik denk dat het iets met de cache te maken heeft en ik heb ergens al iets gevonden over unbind van jQuery. Maar ik kom er op dit moment niet meer uit. De liveUpdate functionaliteit heb ik op internet gevonden en heeft de volgende code:
Misschien dat iemand me een vingertje in de juiste richting kan wijzen.
Alvast bedankt!
Voor een website ben ik bezig met een liveSearch welke ik op internet heb gevonden.
De search heeft een input en een unordered list
HTML:
1
2
| <input id="search" type="text" /> <ul id="list"></ul> |
Via jquery laad ik data in de lijst:
JavaScript:
1
2
| $('#list').load('/search/organization'); $('#search').liveUpdate('#list').focus(); |
Maar nu wordt de data wel geladen maar de search werkt niet meer.
Wanneer ik statische informatie in de lijst laad. Dus:
HTML:
1
2
| <input id="search" type="text" /> <ul id="list"><li>test1</li><li>test2</li></ul> |
Werkt de search wel gewoon. Ik denk dat het iets met de cache te maken heeft en ik heb ergens al iets gevonden over unbind van jQuery. Maar ik kom er op dit moment niet meer uit. De liveUpdate functionaliteit heb ik op internet gevonden en heeft de volgende code:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| jQuery.fn.liveUpdate = function(list){ list = jQuery(list); if ( list.length ) { var rows = list.children('li'), cache = rows.map(function(){ return this.innerHTML.toLowerCase(); }); this .keyup(filter).keyup() .parents('form').submit(function(){ return false; }); } return this; function filter(){ var term = jQuery.trim( jQuery(this).val().toLowerCase() ), scores = []; if ( !term ) { rows.show(); } else { rows.hide(); cache.each(function(i){ var score = this.score(term); if (score > 0) { scores.push([score, i]); } }); jQuery.each(scores.sort(function(a, b){return b[0] - a[0];}), function(){ jQuery(rows[ this[1] ]).show(); }); } } }; |
Misschien dat iemand me een vingertje in de juiste richting kan wijzen.
Alvast bedankt!
[ Voor 0% gewijzigd door BtM909 op 24-08-2010 10:59 ]