好的,不确定代码中的内容是否会切换类,但是再次单击该类时,可以很好地看到该类已删除,但是文本保持不变“ Locked ...”,并且没有更改回原始文本。

这是jQuery代码

$("#sprv").click(function() {
                 $(this).toggleClass('btn_active');

                 $(".prv").text("Make private?");

                 }, function(){

                 $(this).toggleClass('btn_active');

                 $(".prv").text("Locked...");
});

<span class="prv">Make private?</span>


有人可以告诉我我做错了什么以及如何解决此问题。提前致谢

最佳答案

您正在将两个函数传递给点击处理程序。您不能这样做(它将第一个功能解释为事件数据,第二个功能解释为处理程序-参见http://api.jquery.com/click/)。您只需要传递一个事件处理程序。它可以同时处理两种情况,如下所示:

$('#sprv').click(function() {
    $(this).toggleClass('btn_active');
    $('.prv').text($(this).hasClass('btn_active') ? 'Locked...' : 'Make private?');
});


首先,它切换类,然后使用jQuery.hasClass()来确定它是否具有btn_active类。它总是更新文本,但是会根据状态使用一个值(由刚切换的类确定)。

10-07 16:36