Problem z rozwijalnym div'em

0

Hej
Testuję skrypt, który działa bez problemu na jsfiddle - ten

Po wrzuceniu go na stronę pokazują się problemy:

  1. Mam dwa divy, pierwszy się ukrywa, natomiast drugi już nie chce
  2. Przycisk generowany z automatu, tj. "czytaj więcej" nie wykonuje akcji

Dodatkowo podczas wczytywania strony wywala błąd
title

Link do jQuery dodany standardowo w head. Skrypt próbowałem wrzucić zarówno w head jak i w body - bez skutku.
Możliwe, że silnik strony sam z siebie ogranicza jquery? Z tego co się orientuję jest to jakiś starszy Zed framework.

0

Może na stronie której używasz jest już podpięta biblioteka jquery i robi się konflikt. Ew. może jakaś zmienna wykorzystuje domyślny prefix z jQuery - poczytaj o jQuery noConflict

0

Na razie pokazujesz jakiś kod, który działa i pytasz czemu nie działa kod którego nie pokazujesz :)

0

Na stronie jest tylko jedna biblioteka jQuery.
Strona o której mowa to: tutaj

Co do konfliktu, myślicie że byłby z GA?

2

Na fiddl'u używasz jQuery w wersji 1.7.1 - na produkcji masz 3.1.1 Funkcja live z tego co wiem jest deprecated od jakiegoś czasu, tak więc to ona Ci to pewnie wykrzacza. Po zmianie funkcji live na on rozwijanie działa, zwijanie nie, tak więc problem gdzieś indziej tkwi (chociaż to jest już zupełnie inny problem). Na podanej przez Ciebie stronie konsola jasno pokazuje dlaczego nie działa. Korzystasz z konsoli w ogóle?

0

https://jsfiddle.net/S3Rfu/20/ działa, ponieważ korzysta z jQuery 1.7.1, zmień wersję na 3.1.1 (używasz jej na stronie carlstahl) i sprawdź czy działa.

http://api.jquery.com/live/ (version deprecated: 1.7, removed: 1.9)

Twój kod

$(".opis").find(".readmore").live.....

jest niezgodny z wersją jQuery, którą używasz.

0

Dzięki za naprowadzenie.
Teraz muszę obadać czemu nie chce się zwijać. Coś jest nie tak z określaniem długości pola (na live w konsoli dodaje tylko overflow, a wysokość się nie zmienia. Ale do tego sam jakoś dojdę.

Z konsoli korzystam, ale w jquery dawno nie robiłem niczego i zbytnio nie wiedziałem dlaczego live się wysypuje.

0

Moja rada - nie twórz tak dynamicznie elementów, szkoda zachodu. Zrób w każdym na dzień dobry element z określoną klasą, a potem tylko steruj tym co ma w nim się wyświetlać i jak ma się zachowywać sąsiedni div (zwinięty, rozwinięty).

1

fajna stronka, szkoda, że bez rwd

0

Wiedza dla potomnych. Aby się rozwijało trzeba zmienić troszkę strukturę. Wynika ona ze zmiany z live na on :)

 
 $(function(){
    $('.opis').each(function(){
        $(this).append('<div class="readmore">czytaj więcej...</div>');
        var textelement = $(this).find('.text');
        var wys = textelement.height();
        textelement.css('height', '80px');
        $(this).on('click','.readmore', function(){
            textelement.animate({height: wys}, 1000);
            $(this).attr('class', 'readless');
            $(this).text('czytaj mniej...');
        });
        $(this).on('click','.readless', function(){
            textelement.animate({height: '80px'}, 1000);
            $(this).attr('class', 'readmore');
            $(this).text('czytaj więcej...');
        });
    });
});


Nad RWD pracujemy. Największym problemem z RWD jest multum tabel z parametrami produktów, które nie wiem jak ogarnąć aby były czytelne na komórce.

0

Wg mnie powyższe rozwiązanie mimo że działa nie jest optymalne. Przy 100 divach z klasą opis będzie przypinał 200 eventów. Tutaj masz lepszy przykład
http://viralpatel.net/blogs/dynamically-shortened-text-show-more-link-jquery/ W pętli masz tylko ucinanie tekstu

0

tabele można zrobić przewijane poziomo, a robienie rwd dopiero po całym projekcie mocno dyskusyjne, no ale jak kto lubi

0

Stronę pod siebie dostałem jakiś rok temu. Samo wdrożenie było z tego co ustaliłem w 2010 lub 2011 roku i wtedy nie mieli świadomości / nie chało im się / cokolwiek ;) Więc teraz trzeba nadrobić nad niektórymi niedoróbkami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1