单击按钮时显示隐藏的div(幻灯片)(更改文本)

时间:2013-01-02 17:04:18

标签: javascript jquery

我有一个页面,我想隐藏一些内容(#hidden_​​content)作为默认值。在此页面上有一个CSS按钮,文本示例为“显示内容”。

单击此按钮时,我希望div #hidden_​​content以幻灯片效果显示,同时“显示内容”按钮上的文本将更改为示例“隐藏内容”,单击时内容将再次隐藏

按钮

<a href="" id="button" class="button_style">Show content</a>

股利

<div id="hidden_content">Content</div>

滑动剧本

$(document).ready(function(){
  $("#button").click(function(){
    $("#hidden_content").slideToggle("slow");
  });
});

现在我希望按钮上的文字在点击时更改。我该怎么做?

感谢。

4 个答案:

答案 0 :(得分:2)

试试这个:http://jsfiddle.net/dRpWv/1/

$(document).ready(function() {
  $("#button").toggle(function() {
    $(this).text('Hide Content');
  }, function() {
    $(this).text('show Content');
  }).click(function(){
      $("#hidden_content").slideToggle("slow");
  });
});

答案 1 :(得分:1)

jQuery有一个text()函数:

$("#button").text("change");

您可以在函数中使用它:

$(document).ready(function(){
    $("#button").click(function(){
        $("#hidden_content").slideToggle("slow");
        $("#button").text("change");
    });
});

您可以根据内容是否隐藏来确定:

$("#button").text($("#hidden_content").is(":hidden")?"Show content":"Hide content");

确保在内容切换后使用此功能。

答案 2 :(得分:0)

来自slideToggle doc page:您可以添加一个动画完成后将执行的回调

$('#hidden_content').sliddeToggle('slow', function(){
  if( $('#hidden_content').is(':hidden') ){
    $('#button').text('Show content');
  } else {
    $('#button').text('Hide content');
  }
})

答案 3 :(得分:0)

根据w3schools,在1.9版之后删除了事件方法toggle()。 (注意:这是事件方法 toggle(),而不是效果方法 toggle()。效果方法toggle()保持不变。)

Jai's answer很棒,所以我使用了他的答案并使用ifelse代替toggle()对其进行了修改。

$(document).ready(function() {
    $(".button").click(function(){
        if($(this).text() == 'Show Content')
            $(this).text('Hide Content');
        else
            $(this).text('Show Content');
        $("#hidden_content").slideToggle("slow");
    });
});

在JSFiddle Here上尝试。