Проблемы с переключением текста ссылки с JQ - PullRequest
0 голосов
/ 17 мая 2009

Я пытаюсь использовать этот код для переключения текста по ссылке:

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);
});

Но это не работает! Как и обычная конструкция if ... else. Может кто-нибудь, пожалуйста, укажите мне, что здесь не так. Спасибо!

1 Ответ

0 голосов
/ 17 мая 2009

Используйте вспомогательную функцию toggle:

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);
  }
);

Из документации toggle:

Всякий раз, когда выбирается соответствующий элемент, первая заданная функция запускается, при повторном нажатии второй уволена. Все последующие клики продолжаются вращаться через две функции.

...