3 Stimmen

jquery IF/ELSE-Anweisung Hover-Funktion nur auf zweite Hover feuern?

Ich bin mit JqueryToolTip zu Stil und animieren Tooltipps für eine Reihe von Bildern innerhalb Anker auf meiner Seite. Das Problem ist, dass wenn der Tooltip länger als 30 Buchstaben ist es nicht vertikal innerhalb der div zentriert ist. Also habe ich dieses Jquery geschrieben, um eine Klasse .small zu allen Tooltips mit weniger als 30 Buchstaben hinzuzufügen. Dies erzeugte den gewünschten Effekt, aber es funktioniert nur beim zweiten Hover. Wie schaffe ich es, dass es beim ersten Hover passiert?

Ich bin noch neu in Jquery. Ich nehme an, es hat etwas mit der Reihenfolge zu tun, die ich den Code in aber ich kann es nicht herausfinden.

$("#loop-wrapper a img").hover(function(){
  var getLength = $(this).attr("alt").length;
  if(getLength < 30){
    $(".tooltip").addClass("small");
  }
  else{
    $(".tooltip").removeClass("small");
  }
}, function (){
  $(".tooltip").removeClass("small");
});

2voto

karim79 Punkte 333786

Ich würde es umgestalten und .toggleClass mit einem Schalterparameter und nur einem Funktionsargument an .hover :

$("#loop-wrapper a img").hover(function () {
    var getLength = $(this).attr("alt").length;
    $(".tooltip").toggleClass("small", (getLength < 30));
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X