Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Klientspråk > JavaScript

jQuery-mysterium

pbf
pbf

Gradering

#15956

Zupp fellas!

Har gjort en enkel jquery.autocomplete-sök åt en kund (kan tyvärr inte visa sidan). Nu är det såhär att vanligtvis brukar sökresultaten dyka upp i en lista med z-index under Textrutan eller nåt liknande. Men jag har ändrat om lite i grytan då jag ville placera sökresultaten på en annan plats. Därför har jag ändrat jquery.autocomplete.js på en rad bara. Och det är rad 577:

http://www.aspsidan.se/code/default.asp?c=24410

Där kör jag en:

appendTo("#SearchResults")


Problemet är att när man klickat på F5 och sen ska söka efter sidan laddats om så 'append:as' aldrig element (det är div:en som skapas i javascript-filen, på rad 573) i min #SearchResults-div.

Vad kan detta bero på? Kan jag testa nåt annat istället för appendTo som kanske fungerar?

life is short, enjoy it!
ID: #15956 | Skapades: 2009-05-28 13:44:29 | Tråden har 15 svar och har lästs 493 gånger.

voigtan
voigtan

Gradering

#15957

Det är en kul kod du har gett, 700rader kod att börja debuga utan att ens veta HTML strukturen på dina aktuella sida, hur långt kommer du i koden, firebug kan sätta en debug key som i .NET (och andra språk, men du jobbar i .NET).

Vad är needsInit när du trycker på F5? Körs funktionen init() vid en F5 ens?

Jag ber dig även, om möjligt: Generera en HTML sida som påminner om din kundssida, plocka bort allt "hemligt"(eller irellevant kod) som du inte vill dela med dig. Så man kan själv se vad problemet kan vara, jag är en sådan person som måste ha ett exempel för att se hur det fungera in action för att ge ett mer korrekt svar,

Om det är så att diven inte skapas inne i #SearchResults, se bara till att den skapas utanför funktionen, att den även gör en kontroll att den finns.

Ge i alla fall ett exempel man kan gå efter, en array med datan eller hur man binder innehållet i denna plugin.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15957 | Skapades: 2009-05-28 14:18:45

pbf
pbf

Gradering

#15959

Haha, menade ju inte att ni skulle kolla igenom varje rad, utan endast 10-12 st som init() är. Tog med hela filen då de flesta ställer följdfrågan: "Kan du visa oss mer kod?".

HTML-koden består ju bara av en div ( SearchResults ) samt en input där man skriver söksträngen.

Har debuggat javascriptet via Visual Studio och init() körs inte när du klickat F5 och försöker söka, i så fall hade div:en visats med alla sökresultat.

Har du nåt förslag på hur jag ändrar om i koden om jag vill att init() ska köras vid varje "sidladdning"?

life is short, enjoy it!
ID: #15959 | Skapades: 2009-05-28 17:59:43

voigtan
voigtan

Gradering

#15960

init() bör köras vid varje omladdning, det är ju vad init (Initialize), kör hellre debug i firebug.

jag kör den jag tror du kör på (enligt det jag har hittat)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" href="http://dev.jquery.com/view/trunk/pl...e/demo/main.css" type="text/css" />
<link rel="stylesheet" href="http://dev.jquery.com/view/trunk/pl...utocomplete.css" type="text/css" />
<script type="text/javascript" src="http://dev.jquery.com/view/trunk/pl...bgiframe.min.js"></script>
<script type="text/javascript" src="http://dev.jquery.com/view/trunk/pl...y.dimensions.js"></script>
<script type="text/javascript" src="http://dev.jquery.com/view/trunk/pl...autocomplete.js"></script>

<script>
$(document).ready(function(){
var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" ");
$("#example").autocomplete(data);
});
</script>

</head>
<body>
API Reference: <input id="example" /> (try "C" or "E")
</body>
</html>
fungera för mig med F5 dock triggar inte den alls i Firebug but it works somehow. Jag har bara skummat igenom koden då jag har svårt att återskapa ditt problem men:

$.Autocompleter.Select
har en retunera objektet med blandannat en property display

En sak du kan testa är att lägga in ett par alert() för att se om den gå in i INIT eller inte. Vad har du modifierat mer i orginal koden?

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15960 | Skapades: 2009-05-28 18:09:31

pbf
pbf

Gradering

#15961

Du kan inte referera till en autocomplete-fil på nätet då jag har lagt till "appendTo()", det är det som spökar. När du gjort det, och testar klicka på F5 och ska söka igen så appendas resultaten inte i div:en.

life is short, enjoy it!
ID: #15961 | Skapades: 2009-05-28 18:26:26

voigtan
voigtan

Gradering

#15962

Spelar absolut ingen roll: http://voigt.se/sandbox/autocomplete/ lägger den i en div med din ID, och kan fortfarande (tyvärr) inte återskapa ditt problem (testat i firefox endast dock).



Redigerad av voigtan
Anledning:

När anropar du din autoComplete?

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15962 | Skapades: 2009-05-28 18:34:03

pbf
pbf

Gradering

#15963

Hur menar du nu? Problemet är ju appendTo(), så den måste finnas med i din JS-fil, inte bara i html-koden.

life is short, enjoy it!
ID: #15963 | Skapades: 2009-05-28 18:39:25

voigtan
voigtan

Gradering

#15964

Och det har jag:

        .appendTo("#SearchResults");
och ja, den finns med i min JS kod, eftersom appendTo är ett anrop i jquery objektet. Kolla min autocomplete fil så ser du att den har appendTo ett element med ID SearchResults.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15964 | Skapades: 2009-05-28 18:40:28

pbf
pbf

Gradering

#15965

Känner att jag måste be om ursäkt ;-)

Du fick mig att inse att problemet måste ligga nån annanstans, och så kom jag på att jag sätter focus på min sökruta i min form-tagg: defaultfocus="tbSearch", när jag tog bort detta funkade det perfekt.

Kan du förklara varför? För jag kan fan inte se nån förklaring.

life is short, enjoy it!
ID: #15965 | Skapades: 2009-05-28 19:40:26

voigtan
voigtan

Gradering

#15966

Kan du testa att köra jquery för att markera istället för defaultFocus (?) har aldrig i vanlig HTML om detta, är förmodligen något .NET gör :P

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15966 | Skapades: 2009-05-28 19:45:14

pbf
pbf

Gradering

#15967

You did it again. Tack som fan voigtan.

Ett annat problem jag märkte med söken nu är att den inte gör anrop mot min generic handler vid varje bokstav jag skriver. Om jag skriver "Jes" så kanske 10 resultat kommer fram, men fortsätter jag att skriva: "Jessica", så söker den inte vid varje knapptryckning. Bara "ibland", det är faktiskt det bästa sättet jag kan uttrycka mig, den anropar min generic handler ibland. (Detta ser jag självklart i Firebug).

På ett sätt tror jag inte att det är min Generic Handler det är fel på, kan man inte lägga till nån extra-funktion som anropar autocomplete() vid varje KeyUp typ? Men nu kan det vara så att det är min Generic handler det är fel på, så jag bifogar kod här. (Den är smutsig, ska städa den vid ett senare tillfälle)

Min Generic Handler-kod:
http://www.aspkoll.se/code/Index.asp?id=512

 

life is short, enjoy it!
ID: #15967 | Skapades: 2009-05-28 20:06:59

voigtan
voigtan

Gradering

#15968

Jag tror den faktist kör anropen varje gång, du borde se det i ajax snurran, den hinner inte kasta tillbaka ett svar innan its "outdated", men det kan också vara så att funktionen inte triggar en ajax snurra förrän den har fått OK från förra snurran, vilket låter konstigt, hinner inte kolla kodan, har lite bättre saker på min födelsedag än att ha jobbat i 13 timmar redan :P

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 28 maj 2009. Läs tidigare inlägg.
ID: #15968 | Skapades: 2009-05-28 20:39:55

pbf
pbf

Gradering

#15969

Haha varför sa du inte det från början voigt ;-)

Grattis som fan! Ta det lugnt med boozen.

life is short, enjoy it!
ID: #15969 | Skapades: 2009-05-28 20:47:03

voigtan
voigtan

Gradering

#15970

Dricka? pfff Har inte tid med det, skall sova för imorgon är det firma-aktiviteter i Danmark ;) och lördag bröllop God I have no spare time :P



Redigerad av voigtan
Anledning:

Om man kollar deras key-binding så är det vid keypress+keydown så det är nog helt enkelt att du skriver för fort :P

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15970 | Skapades: 2009-05-28 20:48:40

pbf
pbf

Gradering

#15973

Så fort den hittat ett sökresultat, om du söker på "mon" så kommer mona sahlin upp, och många fler. Men fortsätter man skriva "mona sah.." så söker den inte, de funna resultaten är fortfarande kvar, inga resten filtreras inte bort. Det körs ju inget anrop till Handlern, och jag skriver inte för fort. Testade skriva en bokstav med 10 sekunders intervall ;-)

life is short, enjoy it!
ID: #15973 | Skapades: 2009-06-01 11:13:44

voigtan
voigtan

Gradering

#15974

Hur ser koden ut när du anropar ajax datan? Du generera inte direkt ut en JSON objekt i din kod, har du ändrat någon annan kod ifrån orginal koden?

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15974 | Skapades: 2009-06-01 13:01:40
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy