Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX]Dodawanie i usuwanie znacznika <b> w Jquery
northwest
post
Post #1





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


Witam serdecznie,
Mam następujący link (docelowo mam ich więcej):
  1. <a class="setmes1" href="abc.html" >O mnie</a>


chciałbym po kliknięciu w powyższy link uzyskać następujący efekt:
  1. <b><a class="setmes1" href="abc.html" >O mnie</a></b>


W jaki sposób można to zrobić?

Kombinowałem coś takiego:
  1. $(".setmes2").html("<b>");
  2. $( "<b>" ).insertAfter( ".setmes2" );
  3. $(".setmes2").prepend("<b>");


Ale niestety nie dało efektu jaki chciałem sad.gif Ma ktoś może pomysł jak to rozwiązać?

Bardzo proszę o pomoc,
Northwest
Go to the top of the page
+Quote Post
markuz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. $('.setmes1').click(function() {
  2. $(this).css('font-weight', 'bold');
  3. return false;
  4. });
[JAVASCRIPT] pobierz, plaintext

Nie lepiej tak?

Ten post edytował markuz 4.06.2014, 16:52:17


--------------------
Go to the top of the page
+Quote Post
northwest
post
Post #3





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


tylko to dodaje style = "font-weight:bold" - a ja potrzebuję dodać fizycznie <b> i </b> przed tym linkiem smile.gif
Go to the top of the page
+Quote Post
markuz
post
Post #4





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. $('.setmes1').click(function() {
  2. $(this).wrap('<b></b>');
  3. return false;
  4. });
[JAVASCRIPT] pobierz, plaintext


Dałem Ci poprzednią odpowiedź, ponieważ nie widzę sensu dodania znacznika <b> w innym celu niż pogrubienie.

Ten post edytował markuz 4.06.2014, 17:20:56


--------------------
Go to the top of the page
+Quote Post
northwest
post
Post #5





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


dziękuję, działa smile.gif a jak usunąć potem takie pogrubienie??

  1. $('.setmes2').click(function() {
  2. $(this).wrap('<b></b>');
  3. $('.setmes1').unwrap('<b></b>');
  4. $('.setmes3').unwrap('<b></b>');
  5. $('.setmes4').unwrap('<b></b>');
  6. $('.setmes5').unwrap('<b></b>');
  7. $('.setmes6').unwrap('<b></b>');
  8. $('.setmes7').unwrap('<b></b>');
  9. return false;
  10. });



coś takiego psuje mi menu :-(
Go to the top of the page
+Quote Post
markuz
post
Post #6





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Po pierwsze - po Co ci klasy od setmes1 do setmes7? Jak już bardzo Ci to potrzebne to dodaj jeszcze jedną klasę o nazwie np. bwrap tzn.
  1. <a class="setmes1 bwrap" href="abc.html" >O mnie</a>
  2. <a class="setmes2 bwrap" href="abc.html" >Coś tam</a>

Po drugie - Chcesz najpierw dodać a potem usunąć - dzięki czemu nie zauważysz różnicy... Może chcesz za pierwszym kliknięciem dodać <b> a za drugim usunąć?
[JAVASCRIPT] pobierz, plaintext
  1. $('.bwrap').click(function() {
  2. if($(this).parent().nodeName.toLowerCase() === 'b') {
  3. $(this).unwrap('<b></b>');
  4. } else {
  5. $(this).wrap('<b></b>');
  6. }
  7. });
[JAVASCRIPT] pobierz, plaintext


Ciekawi mnie cel w jakim to robisz - może się nim z nami podzielisz?

Ten post edytował markuz 4.06.2014, 18:22:25


--------------------
Go to the top of the page
+Quote Post
northwest
post
Post #7





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


dziękuję za pomoc smile.gif Podany kod jednak nie działa sad.gif

Tak, dokładnie. Mam menu na stronie z 7 pozycjami. Po kliknięciu na każdą chce pogrubić tą aktualną - i usunąć pogrubienie z tych wcześniej wybranych.
Go to the top of the page
+Quote Post
markuz
post
Post #8





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


http://jsfiddle.net/czMn4/


--------------------
Go to the top of the page
+Quote Post
northwest
post
Post #9





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


dziękuję, ale to jest znowu z CSS - a nie "b" wink.gif

Może pokaże mój kod:

  1. <a class="setmes1 bwrap" href="a.html" >1</a>
  2. <a class="setmes2 bwrap" href="a.html" >2</a>
  3. <a class="setmes3 bwrap" href="a.html" >3</a>
  4. <a class="setmes4 bwrap" href="a.html" >4</a>
  5. <a class="setmes5 bwrap" href="a.html">5</a>
  6. <a class="setmes6 bwrap" href="a.html" >6</a>
  7. <a class="setmes7 bwrap" href="a.html" >7</a>


Po kliknięciu chce wyczyścić wszystkie linki z "<b>" i "</b>" + zaznaczyć tylko i wyłącznie link który został kliknięty.
Przykładowo klikam link nr 5 i otrzymuję:
  1. <a class="setmes1 bwrap" href="a.html" >1</a>
  2. <a class="setmes2 bwrap" href="a.html" >2</a>
  3. <a class="setmes3 bwrap" href="a.html" >3</a>
  4. <a class="setmes4 bwrap" href="a.html" >4</a>
  5. <a class="setmes5 bwrap" href="a.html">5</a>
  6. <a class="setmes6 bwrap" href="a.html" >6</a>
  7. <a class="setmes7 bwrap" href="a.html" >7</a>

Go to the top of the page
+Quote Post
ziolo
post
Post #10





Grupa: Zarejestrowani
Postów: 82
Pomógł: 20
Dołączył: 17.01.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. $('.bwrap').click(function() {
  2. $('.bwrap').each(function(){
  3. if($(this).parent().nodeName.toLowerCase() === 'b')
  4. $(this).unwrap();
  5. });
  6. $(this).wrap('<b></b>');
  7. });
[JAVASCRIPT] pobierz, plaintext


A coś takiego ?

Ten post edytował ziolo 4.06.2014, 19:24:12
Go to the top of the page
+Quote Post
northwest
post
Post #11





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


zwraca błąd:
TypeError: $(...).parent(...).nodeName is undefined
if($(this).parent().nodeName.toLowerCase() === 'b')
Go to the top of the page
+Quote Post
ziolo
post
Post #12





Grupa: Zarejestrowani
Postów: 82
Pomógł: 20
Dołączył: 17.01.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Teraz będzie ok.
[JAVASCRIPT] pobierz, plaintext
  1. $('.bwrap').click(function(e) {
  2. e.preventDefault();
  3. $('.bwrap').each(function(){
  4. if($(this).parent().prop('nodeName').toLowerCase() === 'b')
  5. $(this).unwrap();
  6. });
  7. $(this).wrap('<b></b>');
  8. });
[JAVASCRIPT] pobierz, plaintext


Edit.

Usuń e.preventDefault();

Ten post edytował ziolo 4.06.2014, 20:35:29
Go to the top of the page
+Quote Post
northwest
post
Post #13





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


dziękuję za pomoc - pomogło smile.gif

mam jeszcze jedno pytanie, chciałbym żeby w momencie gdy $_GET['luk'] == 2 - automatycznie klikała się zakładka odpowiednia + wyświetlał się odpowiedni iframe...

zrobiłem taki kod:
  1. $(document).ready(function(){
  2. $(".setmes2").trigger('click');
  3. });


Skrypt poprawnie oznacza <b> i </b> - klikniętą pozycję (czyli funkcja $('.bwrap').click - działa poprawnie) - jednak
w iframe nie wyświetla się poprawna treść...

Macie może pomysł co jest nie tak??sad.gif

Ten post edytował northwest 13.06.2014, 14:38:10
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 09:09