Temat: Obserwuj Odpowiedz problem ze skryptem w simplemodal

Witam,
nie mogę przebrnąć przez pewien temat ,a dokładnie nie mogę załadować skryptu flexcroll w oknie simplemodal.Próbowałem też z jScroll i innymi. Próbuję:

$j('.cennik').live("click", function () {
$j('#cennik').modal();
return false;
});
<div id="cennik">
<span style="font-size:20px;font-weight:bold;">Lunch Menu</span><br><br>
<div style="width:800px;margin:0 auto;">
<p class="p">gfgfgf</p>
</div>

<div id='mycustomscroll' class='flexcroll'>
EXAMPLE
</div>
Gdy próbuję bez modala wszystko działa. Przykład live : http://marli.sry.pl/back/index.php po kliknięciu CENNIK.
Jesteście w stanie coś podpowiedzieć?.

pozdrawiam

konto usunięte

Temat: Obserwuj Odpowiedz problem ze skryptem w simplemodal

Masz dwa błędy na stronie. Złamany link do jquery.colorbox. W lini 213 $thumbScroller_container.position() is null powoduje przerwanie wykonywania funkcji i jakiś kod się nie wykonuje dalej - zanim zacznie się badać co jest nie tak warto by w konsoli nic się na czerwono nie sypało.
BTW jak w konsoli wpisuję $j('#cennik').modal() to chyba efekt jest poprawny.

No i funkcja live jest mocno passe, powinno się używać on (względnie delegate), jak również jQuery 1.4 jest również lekko stare. Jak tworzysz projekt od nowa to warto jechać na aktualnych narzędziach.

konto usunięte

Temat: Obserwuj Odpowiedz problem ze skryptem w simplemodal

$j('.cennik').live("click", function () {
$j('#cennik').modal();
return false;
});

.cennik = szukasz objektu ktory ma classe o nazwe "cennik"
i jesli zostanie znaleziony, to dodajesz clicka do na objekcie z ID = "cennik" by odpalic modal()

domyslam sie ze to pierwsze .cennik, powinno byc #cennik ? ;)

ps1. jesli uzywasz nowe jquery to powinnines uzywac on(), live i delegate nie beda dalej wspierane.... a jesli starszej wersji, to i tak lepiej uzywac delegate niz live :)

ps2. polecam sobie w FF zainstalowac firebuga i prawdopodobnie sam bys doszedl do wszystkich problemow, ktore masz :)Andrzej Winnicki edytował(a) ten post dnia 14.03.12 o godzinie 23:22

Temat: Obserwuj Odpowiedz problem ze skryptem w simplemodal

Błąd $thumbScroller_container.position() usnałem,łądowałem niepotrzebnie skrypt galerii w indexie.:)
Złamany link do colorboxu..?Na wszelki wypadek usunałem wszystko co z nim związane.
Zmieniłem live na delgate(stara bilioteka nie obsługiwałą on()).
$j(".cennik").delegate("a","click", function(event){
$j("#cennik").modal();
return false;
});
Używam starej biblioteki ponieważ uparłem się na galerię która nie obsługuję późniejszych bibliotek.

"domyslam sie ze to pierwsze .cennik, powinno byc #cennik ? ;)"

Szukam obiektu o klasie .cennik po czym dodaję click który "otwiera" diva #cennik dlaczego powinno tam być #cennik?.;)
Próbuję uzyskać efekt który widać w divie na stronie głównej,w modalu jak widać kompletnie to nie działa.
Konsola wyrzuca teraz tylko błedy z css dotyczące innych elementów.
Live: http://marli.sry.pl/back/index.php
Jacek Kozioł

Jacek Kozioł Web Developer,
Webmaster

Temat: Obserwuj Odpowiedz problem ze skryptem w simplemodal

Przyznam że nie do końca jestem pewien czy zrozumiałem o co Ci tak właściwie chodzi... jeżeli chodzi Ci o to aby fleXcroll zadziałał na elemencie 'mycustomscroll', musisz po prostu w odpowiednim momencie go wywołać... Jeśli efektem ma być podmiana scroll'a na czarny suwak (bo u mnie tak to działa w tej chwili), to wystarczy że w odpowiednim momencie wywołasz "fleXenv.fleXcrollMain('mycustomscroll');"
Bez potrzeby wywołujesz to obecnie w sekcji <head> - próbujesz wywołać coś, na elemencie którego jeszcze nie ma na stronie... poza tym jak widzę w tym przypadku trzeba to wywoływać za każdym razem przy kliknięciu na link cennik.
Nie przyglądałem się dokładnie skryptom na stronie, bo niestety są chaotyczne i zero własnych komentarzy (jeśli nie dopiszesz sobie komentarzy, w przyszłości w bardzo nieprzyjemny sposób da to o sobie znać...), tak więc nie podpowiem Ci co jest w skryptach potrzebne a co nie...
Natomiast aby zadziałał fleXcroll wywal z sekcji <head> linię:
<script type="text/javascript">fleXenv.fleXcrollMain('mycustomscroll');</script>
a następnie kod:

$j(".cennik").delegate("a","click", function(event){
$j("#cennik").modal();
return false;
});

podmień na:

$j(".cennik").delegate("a","click", function(event){
$j("#cennik").modal();
fleXenv.fleXcrollMain('mycustomscroll'); //tutaj to wywołujemy
return false;
});

I powinno zadziałać, o ile taki efekt chciałeś uzyskać....

I jeszcze kolejna sugestia, skrypty ładuj sobie z pliku zewnętrznego, bo nie ma sensu ich dublować na każdej stronie jeśli są potrzebna...
Poza tym na stronie masz sporo błędów, przed deklaracją dokumentu nie powinno być białych znaków, bo inaczej jest ona uważana za błędną, a jak przeglądarka nie rozpozna co to za dokument, to mogą pojawić się problemy w wyświetlaniu i zachowaniu strony. Kolejna sprawa, to masz nie domknięty znacznik <head>.
Po znaczniku <script type="text/javascript"> dodaj sobie na wszelki wypadek linię:
/* <![CDATA[ */

a przed zamknięciem znacznika:
/* ]]> */

W XHTML zamiast <br> powinno być <br />

Mam nadzieję że moja wypowiedź okaże się pomocna...

Następna dyskusja:

problem z thickbox pod ie6




Wyślij zaproszenie do