好的,不确定代码中的内容是否会切换类,但是再次单击该类时,可以很好地看到该类已删除,但是文本保持不变“ 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
类。它总是更新文本,但是会根据状态使用一个值(由刚切换的类确定)。