jQuery text()改变了toggle()?

时间:2010-08-12 20:58:25

标签: javascript jquery toggle

我想创建一个更改切换链接文本的脚本,具体取决于其他元素的可见性。

因此,虽然#form是可见的,但我希望#form-container文本为“Hide ...”,虽然它是隐藏的,但我希望文本为“Show ...”。

我已尝试过这一行 - if($('#form')。is(“:visible”)){另一种方式:if($('#form')。is(“:visible”)= =“true”){ - 但它也不起作用。

怎么了?每次切换另一个项目时如何更改文本?

$('.toggle').click(
    function()
    {
        $('#form').slideToggle();

            if($('#form').is(":visible")){
                $('#form-container a').text("Hide form container");
            }
            else {
                $('#form-container a').text("Show form container");  
            } 
    });

感谢。

2 个答案:

答案 0 :(得分:14)

动画时,它总是可见,您可以检查.slideToggle()回调中的可见性,以便检查完成动画的时间,如下所示:

$('.toggle').click(function() {
  $('#form').slideToggle(function() {
    $('#form-container a').text(
      $(this).is(':visible') ? "Hide form container" : "Show form container"
    );
  });
});

答案 1 :(得分:0)

您可以在表单元素上使用切换。

$("#form").slideToggle(
  function () {
    //Hide
  },
  function () {
    //Show
  }
);

来源:http://api.jquery.com/toggle/