好吧不确定代码上的内容是否会切换类,但是当你再次点击它时,可以看到该类被删除但是文本保持不变"锁定..."并且不会改回原版。
这是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>
有人可以告诉我我做错了什么以及如何解决这个问题。提前致谢
答案 0 :(得分:2)
您正在将两个函数传递给单击处理程序。你不能这样做(它将第一个函数解释为eventdata,第二个函数解释为处理程序 - 请参阅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
类。它总是更新文本,但它根据状态使用一个值(从刚刚切换的类中确定)。
答案 1 :(得分:1)
我认为你要找的是toggle。
试试这个:
$("#sprv").toggle(function() {
$(".prv").text("Locked...");
}, function(){
$(".prv").text("Make private?");
});
使用html:
<input type="button" id="sprv" value="clickme" />
<span class="prv">Make private?</span>