如何使用切换功能更改按钮文本

时间:2014-01-10 23:07:47

标签: javascript jquery button

按钮:

<button type="submit" id="status" class="button" value="True"><span>followed</span></button>

jQuery的:

<script>
$(".button").toggle(function() {
    $(this).val('followed');
}, function(){
    $(this).val('follow');
});
</script>

当用户点击按钮时,我希望它切换到另一个值。但是现在当我运行代码时,按钮就会从页面中消失!这段代码出了什么问题?

编辑: 谢谢您的帮助。 这是整个更新的jQuery:

<script>
$(document).ready(function(){
    $(".button").click(function() {
        var status = $("#status").val();
        var course = $("#course").html()

        //NEW SECTION that I'm having trouble with
        if ($(".button span").html() == "followed") {
            $(".button").on("mouseover", function () {
            $(".button span").html() = "unfollow";
}}

        $.ajax({
            type: "POST",
            url: "/follow",
            data: 'status=' + status + "&course=" + course,
            success: function() {
$(".button span").html($(".button span").html() == 'followed' ? 'follow' : 'followed');
$(".button").val($(".button").val() == 'True' ? 'False' : 'True');
}
        });
        return false;
    });
});
</script>

onclick有效。然后我添加了新的onmouseover代码,将“follow”更改为“unfollowed”,当我运行它时,我得到了

405 Method Not Allowed

The method POST is not allowed for this resource.

onmouseover代码有什么问题?

此外,

的功能是什么
return false;

7 个答案:

答案 0 :(得分:9)

WORKING EXAMPLE

$(".button").click(function() {
     $(".button span").html($(".button span").html() == 'followed' ? 'follow' : 'followed');
});

答案 1 :(得分:2)

由于您可能是jQuery的新手,因为您/某人可能还不知道? :运营商,所以其他人发布的内容很少。

$i = 1;

$(function () {
    $(".button").click(function () {
        if ($i === 0) {
            $(this).text("followed");
            $i = 1;
        } else {
            $(this).text("follow");
            $i = 0;
        }
    });
})

答案 2 :(得分:1)

jQuery切换显示或隐藏元素。您没有正确使用它。您应该使用.on('click', function().click(function()代替。

此外,对于文字,您应该使用.text().html()来添加您在按钮中看到的范围标记。

请参阅文档:http://api.jquery.com/toggle/

使用示例代码

进行更新
// native element tags perform better than classname selectors
// so use button instead of .button
$('button').click(function () { 
    var text = 'follow';
    // save $(this) so jQuery doesn't have to execute again
    var $this = $(this).find('span');
    if ($this.text() === text) {
        $this.text('followed');
    } else {
        $this.text(text)
    }
});

请参阅JSFiddle

答案 3 :(得分:1)

切换意味着“显示或隐藏匹配的元素。”

您只需要侦听点击事件:

$(".button").on("click", function() {
  $(this).html($(this).html() == 'follow' ? 'followed' : 'follow');
});

答案 4 :(得分:0)

在较新的jQuery api中已弃用切换点击。但老年人仍然有效。之所以删除它是因为你使用的是较新的版本,相当于淡入淡出切换。使用Jquery 1.8

查看我的演示
<input type="button" onclick ="play" value="play"/>

 $("input[type='button']").toggle(function (){
       $(this).val("Pause");
    }, function(){
    $(this).val("Play");
});

<强> DEMO

答案 5 :(得分:0)

使用代码可以获得解决方案:

只需创建函数sign_in_up(idElement)

<强> JS:

  function sign_in_up(idElement) {
        var element = document.getElementById('element' + idElement);
        if (idElement === 1 || idElement === 2) {
            if (element.innerHTML === 'SIGN IN') element.innerHTML = 'SIGN UP';
            else {
                element.innerHTML = 'SIGN IN';
            }
        }
    }

<强> HTML:

 <button onClick="javascript:sign_in_up(1)" ></button>    
 <div id="element1"> SIGN UP </div>

答案 6 :(得分:0)

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
    $(this).text()==='Click me away!' ? $(this).text('i am clic') : $(this).text('Click me away!');
});
});
</script>
</head>
<body>


<button type="submit">Click me away!</button>
<button type="submit">Click me also</button>

</body>
</html>