Frage

Ich versuche, diesen Code zu verwenden, um Text auf dem Link Makel:

var showText="<span>Open</span> &darr;";
var hideText="<span>Close</span> &uarr;";
$('h1').before('<a href="javascript:;" id="hc_toggle_close">' + showText + '</a>');
$('#hc_toggle_close').click(function () {
    $('#hc_toggle_close:contains("Open")').html(hideText);
    $('#hc_toggle_close:contains("Close")').html(showText);
});

Aber es funktioniert nicht! Neben einem üblichen if ... else Konstruktion. Könnte jemand zeigen Sie mir bitte, was hier los ist. Dank!

War es hilfreich?

Lösung

Mit der toggle Hilfsfunktion:

var showText="<span>Open</span> &darr;";
var hideText="<span>Close</span> &uarr;";
$('h1').before('<a href="javascript:;" id="hc_toggle_close">' + showText + '</a>');
$('#hc_toggle_close').toggle(
  function () {
    $('#hc_toggle_close').html(hideText);
  },
  function () {
    $('#hc_toggle_close').html(showText);
  }
);

Aus der Dokumentation von toggle:

  

Jedes Mal, wenn ein passendes Element angeklickt wird,   die erste spezifizierte Funktion wird ausgelöst,   wenn wieder angeklickt, ist die zweite   gebrannt. Alle nachfolgenden Klicks weiter   durch die beiden Funktionen zu drehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top