Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][jQuery] najechanie A wskazuje pozostale A
Forum PHP.pl > Forum > Przedszkole
xix
Czy jest jakis kod/funkcja w jakims jezyku, ktora po najechaniu na przyklad na slowo start otworzy inny plik i podkresli, albo zmieni wlasciwosci na przyklad slowa start w drugim pliku?
skowron-line
takiej funkcji wbudowanej nie ma, no ale nic nie stoi na przeszkodzie żebyś sam ją sobie napisał
xix
Probuje wlasnie. Probuje od czegos prostego.
Jesli mam liste, jak ponizej:
ABCACABBBCCA
w ktorej po kliknieciu jednej z liter podkresla mi sie pozostale identyczne, to wzialbym jQuery.
Aby znalezc identyczne litery, to musze to jakos przeslac do jQ informacje, jakiej litery szukam, czego nie wiem - nie wiem, jak to zrobic.
Jezeli zalozymy, ze wszystkie powyzsze litery ABC sa w tym samym pliku i maja klase underline, ktora chce zamienic na red dla identycznych liter, to skrypt wyglada na razie tak:
Kod
$().ready(
  function()
  {
    $("a").click(
     function()
     {
      $(.underline).removeClass("underline")[w takich miejscach, gdzie jest to samo, co kliknalem];
      $(this).addClass("red);
     }
    );
  }
);

i nie wiem jak wprowadzic do skryptu informacje czego szukam do podkreslenia.

Cos juz mam.
Dla tej listy:
ABCACABBBCCA
utworzylem 2 klasy - underline oraz red.
Kazda z liter ABC ma przypisana klase underline i chce identycznym literom przypisac (po kliknieciu w jedna z nich) klase red, czyli lista wyglada tak:
Kod
<a class="underline">A</a>
  <a class="underline">B</a>
  <a class="underline">C</a>
  <a class="underline">A</a>
  <a class="underline">C</a>
  <a class="underline">A</a>
  <a class="underline">B</a>
  <a class="underline">B</a>
  <a class="underline">B</a>
  <a class="underline">C</a>
  <a class="underline">C</a>
  <a class="underline">A</a>


Jezeli teraz w jQ uzyje:
Kod
var title=$(this).text();

to wyswietla mi sie litera, ktora kliknalem. Musze teraz jakims kodem znalesc pozostale takie litery i zmienic ich klase.
erix
Kod
$('#bleble').click(function(){
   $(this).parent().find('a').removeClass('asd');
});


Jeśli dobrze zrozumiałem... A jeśli nie, to spójrz do API w jQuery, masz tam kilkanaście selektorów, włącznie ze sprawdzającym tekst.
xix
Ciesze sie, ze mi odpowiedziales, bo juz tracilem nadzieje, ze cos jeszcze uda sie z tym zrobic.
Wyprobowalem to, co mi napisales, ale nie zadzialalo. Caly czas jeszcze jednak czytam o jQuery, a stanalem na takim pomysle:
Kod
$().ready(function()
{
$("a").click(function()
{
  var title=$(this).text();
  $(this).find("underline", title).removeClass("underline");
  $(this).addClass("red");
});
});
<a class="underline">A</a>
<a class="underline">B</a>
<a class="underline">C</a>
<a class="underline">A</a>
<a class="underline">C</a>
<a class="underline">A</a>
<a class="underline">B</a>
<a class="underline">B</a>
<a class="underline">B</a>
<a class="underline">C</a>
<a class="underline">C</a>
<a class="underline">A</a>

var title=$(this).text();
powyzsze znajduje mi znak, ktory jest klikniety. To moglbym pewnie wykorzystac do znalezienia pozostalych takich znakow, ale nie wiem, jak to zrobic.
Wszystko konczy sie jednak na tym, ze to co klikne podswietla mi sie na czerwono, a nie podswietlaja mi sie pozostale identyczne litery.
erix
Kod
$("a").click(function(){
  $('.underline').not(this).removeClass('underline');
  return false;
});

O to chodziło?
xix
Kod wpisalem, 3 razy sprawdzilem, czy poprawnie, lecz niestety znika mi tylko klasa underline w pozostalych literach i zostaje jedynie pod kliknieta litera. Jesli klikne w innym miejscu, to znika to podkreslenie rowniez na tej ostatniej podkreslonej literze. sad.gif Chodzi o to, by sie podswietlily identyczne litery w ciagu.
erix
Kod
$("a").click(function(){
  $(this).parent().children().not(this).find('a.underline:contains('+$(this).text()+')').removeClass('asd');
  return false;
});


Tasiemcowate trochę, ale powino działać.
xix
Chodzi o ciag: ABCACABBBCCA
Wykorzystujac Twoj skrypt, pomyslalem, ze moze zadzialaja skrypty typu:
Kod
$().ready(function()
{
  $("a").click(function()
  {
   var title=$(this).text();
   $(".underline").not(title).toogleClass("red");
   return false;
  });
});

Niestety nie okazaly sie te skrypty lepsze...

Zaraz sprawdze ten drugi skrypt...

Jakos dziwnie mi to dziala...
Cel jest taki.
1. Stan poczatkowy.
ABCACABBBCCA
2. Gdy klikam pierwsza litere ( A ).
ABCACABBBCCA
3. Gdy klikam druga litere ( B ).
ABCACABBBCCA
4. Gdy klikne na przedostatnia litere ( C ).
ABCACABBBCCA

To co mi wychodzilo, to tylko usuniecie podkreslenia na literach takie, jakie powinny byc, ale oprocz litery kliknietej i nie ma zamiany na nowa klase. Co ciekawe, to mialem jeszcze podobne litery w innym miejscu skryptu strony i dopiero po ich kliknieciu cos takiego, jak opisalem zaczelo sie dziac. Jeden taki ciag mam w komorce tabeli i drugi jest poza tabela. Jak klikne na litery poza tabela, to zmienia mi sie ciag w srodku tabeli (a nie ten poza tabela). Nie ma natomiast podobnej zaleznosci, jesli klikne na litery w tabeli.

Cos juz wyszlo z takiego kodu:
Kod
$().ready(function()
{
  $("a").click(function()
  {
$(this).parent().children().find('a.underline:contains('+$(this).text()+')').toggleClass('red');
  });
return false;
});

Mam dwie listy.
Lista 1: ABCACABBBCCA, ktora jest w tabeli
Lista 2: ABCACABBBCCA, ktora jest poza tabela
Jesli klikne na jakas litere z listy 2, to wyszukane zostana odpowiednie litery na liscie 1 (i tylko na liscie 1, a nie rowniez na liscie 2). (juz mi sie to podoba).
Jednak jest to jedyna mozliwosc, ktora ta funkcja mi daje. Powinno przeciez byc wszystko odpowiednio podswietlane na obu listach, a nic takiego nie zachodzi. Gdzie tu blad?
erix
Cytat
To co mi wychodzilo, to tylko usuniecie podkreslenia na literach takie, jakie powinny byc, ale oprocz litery kliknietej i nie ma zamiany na nowa klase.

Ja podaję wszystko przykładowo; funkcje dodawania/odejmowania klas dorzucaj sam.

Cytat
Jesli klikne na jakas litere z listy 2, to wyszukane zostana odpowiednie litery na liscie 1 (i tylko na liscie 1, a nie rowniez na liscie 2). (juz mi sie to podoba).

O niczym takim nie wspomniałeś, że będą dwie listy. Mój kod zadziała TYLKO na jednej liście, gdyż uwzględnia tylko rodzica (czyli jedną listę, a druga jest "bratem" rodzica). Wtedy trzeba zastosować coś takiego:

Kod
$().ready(function()
{
  $("a").click(function()
  {
$('#lista1, #lista2').children().find('a.underline:contains('+$(this).text()+')').toggleClass('red');
  });
return false;
});

Gdzie #lista1, #lista2, to id warstw z listami.
xix
Dzieki dzieki smile.gif
Ta druga lista to byla lista sprawdzajaca typu "a co by bylo, gdyby", ktora tez sprawdzalem (a nuz...).
Z jakiej ksiazki, albo jakiego kursu korzystales i ile masz doswiadczenia (chodzi o jQuery), jesli mozna? snitch.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.