div打开时更改链接上的文本

时间:2013-07-01 15:06:56

标签: javascript jquery html

我的页面上有一个按钮

 <button id="show1" class="morelinkblack">Find Out More</button>

单击时会运行此代码

 $("#show1").click(function(){
   $(".hidden-div1").slideToggle("slow");
 });

当div显示时,是否有办法将文字更改为“关闭”而不是“查找更多”?

3 个答案:

答案 0 :(得分:7)

你可以这样做:

$("#show1").click(function(){
    var that = $(this);
    $(".hidden-div1").slideToggle("slow", function() {
        if ($(this).is(":visible")) {
            that.text("Close");
        } else {
            that.text("Find out more");
        }
    });
});

根据评论,可以根据用户的指示来打开或关闭div。对DOM准备好的简单检查可以相应地设置文本:

$(".hidden-div1").is(":visible") ? $("#show1").text("Close") : $("#show1").text("Find out more");

答案 1 :(得分:1)

更新了代码

$("#show1").click(function() {
    var el = $(this);
    $(".hidden-div1").slideToggle("slow", function() {
        if ($(this).css('display') == 'none') { // <- Updated here to check if div is close or open
            el.text('Find Out More');
        } else {
            el.text('Hide More');
        }
    });
});

更新文档就绪/页面加载

上的按钮文本
$(document).ready(function() {
    if ($(".hidden-div1").css('display') == 'none') {
        $("#show1").text('Find Out More');
    } else {
        $("#show1").text('Hide More');
    }
});

答案 2 :(得分:1)

也许这个:

$("#show1").click(function () {
    var $div = $(this);
    $(".hidden-div1").slideToggle("slow").promise().done(function () {
        $div.text(function () {
            return $(this).is(":visible") ? "Close" : "Find Out More"
        });
    });
});