jQuery skrypt rozwijający newsy

0

Po raz kolejny ze smutkiem muszę się przyznać, że przygnał mnie tu problem, którego mimo poszukiwań googlowych itp., nie mogę rozwiązać :/

Chodzi o rozwijane newsy do strony. Użyłem kodu-gotowca, który można znaleźć tutaj -> http://jsfiddle.net/423W2/

Taki efekt mnie nie satysfakcjonował więc nieco przerobiłem kod, żeby treść newsa otwierała się po kliknięciu na nagłówek. Niestety działa to teraz tak, że przy większej ilości aktualności otwierają się wszystkie, a nie każda osobno jak jest pożądane. Kod skryptu wygląda tak:

<script type="text/javascript">
$(window).load(function(){

$('.news-text').slideUp();
                
$('.news-header').click(function(){
    $(this).siblings('.news-text').toggle('slow')
    if ($(this).news-header() == ".news-header" )
       $(this).news-header(".news-header")
    else
       $(this).news-header(".news-header");
});
});
    </script>

Kod HTML tak:

<div class="news-header">Tytuł</div>
    <p>Skrót</p> 
    <div class="news-text">
    <p>Treść pełna</p>
    </div>                
    <div class="clear"></div>
    
    <div class="news-header">Tytuł</div>
    <p>Skrót</p> 
    <div class="news-text">
    <p>Treść pełna</p>
    </div>                
    <div class="clear"></div>

Nie mam pojęcia jak to ruszyć w tym momencie :/ Liczę, że ktoś bardziej ogarnięty poradzi co trzeba zrobić - tak łopatologicznie :)

0
 if ($(this).news-header() == ".news-header" )
       $(this).news-header(".news-header")
    else
       $(this).news-header(".news-header");

co to niby ma robić? w życiu Ci to nie zadziała, gdyż jest błąd składni (nie dość, że wymyślasz nazwę metody, która nie istnieje,to jeszcze nazywasz ją z pauzą po środku, co jest błędem w składni)

Jeżeli nie potrzebujesz tego więcej/mniej to po prostu wywal te linie.

a żeby "naprawić" skrypt to najprościej będizesz jak otoczysz każdy news jakimś divem (czyli w każdym divie z newsem będzie nagłówek, skrót, pełna treść i div.clear)

edit: niefajnie, że jedziesz na gotowcach i nie próbujesz nauczyć się kompletnie NIC. jak widać - nie nauczysz się "analizując" gotowce, powinieneś poznawać wszystko od podstaw

0

Chciałem, żeby news rozwijał się po kliknięciu na nagłówek. Działać działało, tylko otwierało wszystkie newsy za jednym kliknięciem :/
W jakim sensie otoczyć divem? Tak jak w tym przykładzie jest?

<div class="news">
                <h3>Nagłówek</h3>
                <div class="news-header">Skrót</div>
                <div class="news-text">Długa treść...</div>                
                <button type="button" class="more">Więcej...</button>
                <div class="clear"></div>
            </div>

Czytam tutorial jQuery, ale wyjaśnia on wszystko, żeby zmontować bardzo podobny skrypt, który również nie działa :/ Te klasy, które tworze w skrypcie muszą mieć jakieś zdefiniowane wielkości w css'ie? W sensie że "news-header" ma tylko 100px wysokości, czy tam mogę tylko ustalać marginesy, czcionkę itp? Wiem, że gotowce to nie jest dobra nauka, ale nie zawsze jest czas na czytanie od podstaw, a może pojawić się potrzeba zrobienia czegoś jak teraz właśnie :/ Poza tym jest też takie powiedzenie, kto pyta nie błądzi. Nie czekam aż ktoś napisze całą stronę za mnie tylko chce zasięgnąć rady osób, obeznanych z tematem na tyle, że bez grzebania w tonach notatek będą w stanie pokazać mi gdzie jest błąd i zasugerować zmianę. W tej chwili wkleiłem gotowca co do linijki w treść mojej strony czyli w założeniu powinien działać, a nie daje znaku życia, poza tym że wyświetla całą treść od razu, a przycisk nie reaguje. Why?

0

Temat do zamknięcia, poradziłem sobie z problemem inaczej ale efekt jest w miarę zadowalający. Okazało się też, że wczesniej skrypt nie działał bo brakowało linijki:

$(window).load(function(){
0

@the hell

  1. bez otoczenia divem też by źle działało (rozwijało by WSZYSTKIE newsy).

  2. przeciez w kodzie w pierwszym poście JEST window.load ...

  3. tematów nie zamykamy. autor postu jak stwierdzi, że któryś (nawet jego własny) post rozwiązuje temat - to klika przy tym poście taką "fajkę" po prawej stronie postu. zrób to proszę

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