[JavaScript]JQuery.autocomplete, Problem z szerokością |
[JavaScript]JQuery.autocomplete, Problem z szerokością |
2.03.2010, 21:08:48
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.02.2010 Ostrzeżenie: (0%) |
mam problem z domyślną szerokością listy wyników skryptu JQuery.autocomplete w darmowym sklepie PrestaShop.
nie udało mi się nigdzie znaleźć informacji jakim parametrem określić szerokość tej listy. nie mogę jej określić za pomocą CSS. domyślnie zajmuje 502px, tj. 2x więcej niż bym chciał. ktoś jeszcze spotkał się z takim problemem? szukam rozwiązania. Ten post edytował ~dNkN! 2.03.2010, 22:41:43 |
|
|
2.03.2010, 21:35:12
Post
#2
|
|
Grupa: Zarejestrowani Postów: 157 Pomógł: 3 Dołączył: 15.06.2009 Ostrzeżenie: (0%) |
nie wiem skąd zerżnąłeś skrypt ;p ale szerokość ustawia się w pliku autocomplete napisanym w JS nie myl czasem z JQuery. Tam jest deklaracja szerokości itp jak nie ma trzeba dopisać.
|
|
|
2.03.2010, 22:17:10
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.02.2010 Ostrzeżenie: (0%) |
po prostu zainstalowałem PrestaShop...
możesz pokazać mi na przykładzie gdzie i jakim parametrem określić szerokość? Kod $.Autocompleter.defaults = { inputClass: "ac_input", resultsClass: "ac_results", loadingClass: "ac_loading", minChars: 1, delay: 100, matchCase: false, matchSubset: true, matchContains: false, cacheLength: 10, max: 60, mustMatch: false, extraParams: {}, selectFirst: true, formatItem: function(row) { return row[0]; }, formatMatch: null, autoFill: false, width: 250, multiple: false, multipleSeparator: ", ", highlight: function(value, term) { return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>"); }, scroll: true, scrollHeight: 180 }; nie wiem do czego służy w/w deklaracja szerokości ale dla mnie nie działa (zmieniłem 0->250 i dalej lipa). |
|
|
2.03.2010, 22:21:15
Post
#4
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 89 Dołączył: 31.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) |
Zajrzyj w arkusz CSS i sprawdź co ma ustaloną szerokość na 500 bądź 502px. I zapewne to coś wpływa również na widok listy.
-------------------- |
|
|
2.03.2010, 22:25:02
Post
#5
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Bo tego nie stylujesz w tym miejscu. To zwykły input o określonym id zapewne, więc zdefiniuj mu szerokość za pomocą CSS, a nie konfiguracji domyślnej plugina, bo ona przecież odpowiada za coś innego.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
2.03.2010, 22:27:31
Post
#6
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.02.2010 Ostrzeżenie: (0%) |
sprawdziłem arkusz CSS w pierwszej kolejności.
Kod .ac_results { /* width: 250px; dopisanie tej deklaracji kompletnie nic nie daje */ text-align: left; padding: 0px; border: 1px solid black; background-color: white; overflow: hidden; z-index: 99999; } .ac_results ul { width: 100%; /* wpływa tylko na szerokość barwy tła */ list-style-position: outside; list-style: none; padding: 0; margin: 0; } .ac_results li { margin: 0px; padding: 2px 5px; cursor: default; display: block; /* if width will be 100% horizontal scrollbar will apear when scroll mode will be used */ /*width: 100%; to też wpływa tylko na szerokość barwy tła */ font: menu; font-size: 12px; /* it is very important, if line-height not setted or setted in relative units scroll will be broken in firefox */ line-height: 16px; overflow: hidden; } /* .ac_loading { background: white url('indicator.gif') right center no-repeat; } */ .ac_odd { background-color: #eee; } .ac_over { background-color: #0A246A; color: white; } |
|
|
2.03.2010, 22:28:31
Post
#7
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 89 Dołączył: 31.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) |
Zapomniałem dodać - nie arkusz od jQuery.autocomplete a swój od strony.
-------------------- |
|
|
2.03.2010, 22:35:22
Post
#8
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.02.2010 Ostrzeżenie: (0%) |
Bo tego nie stylujesz w tym miejscu. To zwykły input o określonym id zapewne, więc zdefiniuj mu szerokość za pomocą CSS, a nie konfiguracji domyślnej plugina, bo ona przecież odpowiada za coś innego. good point, tylko gdzie... tak autocomplete jest osadzony na stronie
to jest chyba tworzenie obiektu INPUT (ID="autocomplete") ? Kod // Create $ object for input element var $input = $(input).attr("autocomplete", "off").addClass(options.inputClass); dalej nie bardzo wiem, co z tym zrobić |
|
|
2.03.2010, 22:37:09
Post
#9
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa |
Proszę poprawić tag tematu, java != javascript
|
|
|
2.03.2010, 22:44:50
Post
#10
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.02.2010 Ostrzeżenie: (0%) |
Kod /* block top search */ #header #search_block_top { margin: 20px 0 0 100px; /* background: #e5e6e7 url('../img/block_search_bg.jpg') no-repeat top right; */ height: 25px; width: 336px; float: right; } #header #search_block_top p { padding: 0.4em 0 0.4em 1em; } #header #search_block_top label, #header #search_block_top input{ float:left; } #header #search_block_top label { /* background: transparent url('../img/icon/search.gif') no-repeat 0 2px; */ float: left; width: 19px; height: 18px; display: block; } #header #search_block_top input#search_query { width: 12em; } tym już też się bawiłem i ni-hu-hu. |
|
|
2.03.2010, 23:04:02
Post
#11
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
No to sobie ładnie prześledź "kolejkę" Pozwól, że poprowadzę cię za rękę przyjmując, że to FAKTYCZNIE input odpowiadający z autocomplete.
Mamy input, któremu nadajemy klasę związaną z opcjami i ukrytą w inputClass No popatrz... Mamy takie pole w defaulcie. Wewnątrz jest odwołanie do klasy ac_input. Mamy taką gdzieś w temacie? Nie widzę I chyba tam powinieneś zerknąć. Jeśli zaś tam nic niema to sobie SAM napisz styl dla tego inputa by zdefiniować jego długość na tyle, ile chcesz. Ten post edytował thek 2.03.2010, 23:04:55 -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
2.03.2010, 23:19:47
Post
#12
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.02.2010 Ostrzeżenie: (0%) |
oto efekt kompletnie nic z tego nie rozumiem |
|
|
2.03.2010, 23:46:09
Post
#13
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 89 Dołączył: 31.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) |
A może pokaż cały arkusz swoich styli CSS, nie tylko te wewnątrz #header?
-------------------- |
|
|
3.03.2010, 00:31:15
Post
#14
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Zmyliło mnie nieco pisanie, stąd myślałem, że chodzi o szerokość samego input Ale skoro chodzi o szerokość wyników to pomyśl o pewnej rzeczy... Nadałeś szerokość 50% elementom listy, a nie całej liście. Z postów powyżej wynika, że testowanie dla całego UL i zmiana width też nie dawały efektów. w takim wypadku zerknij sobie czym jest w kodzie element, który jest dostaje klasę ac_results. Mam na swoich serwisach także autocomplete i wiem, że to jest sobie div, któremu można nadać szerokość Zainstaluj sobie FireBuga a sam zobaczysz. Jeśli nie wiesz gdzie to radzę zajrzeć do kodu autocompleta, który ciągle wałkujemy. Do części $.Autocompleter.Select = function (options, input, select, config), a konkretnie function init(), bo tam masz właśnie definiowanie szerokości. A tam jak byk pisze, że odpowiada za to options.width, które to już poruszono na samym początku tego tematu. Skoro według Ciebie nie działa to spróbuj tam "na pałę" zmienić fragment
if( options.width > 0 ) element.css("width", options.width); na element.css("width", 250); i zobacz jak działa -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
3.03.2010, 15:55:34
Post
#15
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.02.2010 Ostrzeżenie: (0%) |
próbowałem tego jeszcze wczoraj, nie działa
definiowanie elementu 'select' zarówno w globalnym jak i lokalnym pliku CSS autocomplete także nic nie dało. przeinstalowałem dzisiaj PrestaShop na serwerze, dalej jest to samo. nie pozostaje mi nic innego jak użycie innego skryptu. dzięki za starania A może pokaż cały arkusz swoich styli CSS, nie tylko te wewnątrz #header? cały plik CSS zajmuje ponad 60kB. dostępny jest tutaj: global.css |
|
|
Wersja Lo-Fi | Aktualny czas: 1.06.2024 - 19:27 |