Domanda

Come uso jquery per evidenziare il collegamento quando faccio clic su di esso?

Ad esempio, quando faccio clic sul collegamento class1_1, voglio rendere rosso questo link (o un altro colore).

Il codice javascript qui:

<script type="text/javascript">
 $(function(){
  $("#menu li").each(function(){
     $(this).click(function(event){
       var ul=$(this).children("ul")
       var span = $(this).children("span")
       if(ul.html()!=null)
       {
          if(ul.css("display")=="none")
          {
            ul.css("display","block");
            span.addClass("up")
          }else
          {
            ul.css("display","none")
            span.removeClass("up")
          }
           event.stopPropagation();
       }else
       {
         event.stopPropagation();
       }
     });
  });
  return false;
 });
</script>

Il codice html qui:

<ul id="menu">

<li class="title"><span>class1 </span>
<ul>
  <li><a href="">class1_1</a></li>
   <li><a href="">class1_2</a></li>
 </ul>
 </li>
<li class="title"><span>class2</span>
   <ul>
  <li><span>class2_1</span>
   <ul>
    <li><a href="">class2_1_1</a></li>
    <li><a href="">class2_1_1</a></li>
  </ul>
  </li>
 </ul>
</li>
</ul>

forse non riesco a spiegare chiaramente la mia domanda, voglio dire è l'ultimo link onclick a renderlo

colore rosso e altri collegamenti impostati sul colore predefinito

È stato utile?

Soluzione 5

<script type = "text/javascript" >
$(function() {
    $("#menu li").each(function() {
        $(this).click(function(event) {

            $("#menu li").removeClass("high");
            $(this).addClass("high");

            var ul = $(this).children("ul")
            var span = $(this).children("span")
            if (ul.html() != null) {
                if (ul.css("display") == "none") {
                    ul.css("display", "block");
                    span.addClass("up")
                } else {
                    ul.css("display", "none") span.removeClass("up")
                }
                event.stopPropagation();
            } else {
                event.stopPropagation();
            }
        });
    });
    return false;
});
</script>


<style>
.high{color:red}
</style> 

Altri suggerimenti

È possibile utilizzare CSS, non è richiesto jQuery:

Highlight:

a:active {
    background-color: #FF0000;
}

Cambia colore link:

a:active {
    color: #FF0000;
}

Modifica: risposta al tuo commento ... Se i tuoi collegamenti non indirizzano il browser a un'altra pagina, puoi utilizzare La risposta di Mike Robinson per ottenere lo stesso effetto senza uscire dalla pagina e senza cambiare il colore di default su onblur.

Penso che dovrebbe farlo, anche se non ho jquery in questo momento. Suppone che "up" sia una classe che rende rosso il tuo link:

$("ul#menu a").click(function(){
 $(this).addClass('up');
});

Dovrebbe funzionare:

Javascript:

$(function(){
    $('.class1').click(function() {
        $(this).toggleClass('active1');
    });
});

CSS:

a.class1 { color: red; }
a.active1 { color: blue; }

HTML:

<a href="#" class="class1">some text</a>

È meglio usare toggleClass (2 in 1) invece di addClass / removeClass.

Consiglierei il http://plugins.jquery.com/project/color plugin jquery.color. Ti consentirà di animare il colore su tutti i tipi di elementi html.

Javascript:

$('.link').click(function() {
    if (!$(this).hasClass('hi')) {
        // If this link is not already highlighted, highlight it and make
        // sure other links of class .link are not highlighted.
        $('.hi').removeClass('hi');
        $(this).addClass('hi');
    }
});

css:

a.hi { color: red; }

html:

<a href="#" class="link">my text</a>
<a href="#" class="link">that text</a>
<a href="#" class="link">this text</a>

Puoi farlo utilizzando la pseudo-classe CSS attiva . Aggiunge uno stile speciale a un elemento attivato.

Ad esempio puoi farlo:

a: active { color: red; }

Fai attenzione, a: attivo DEVE venire dopo a: passa il mouse sulla definizione CSS per essere efficace !!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top