2013-02-14 76 views
1
$('#btn2').toggle(
    function() { 
     $('#btn2').text('show'); 
    }, 
    function() { 
     $('#btn2').text('hide');     
    } 
) 

这不适用于我的电脑(在任何浏览器上)。这可能是由于jQuery版本之间的方法发生了变化吗?正确使用jQuery切换方法

+2

如果您要检查,如果事情是(仍然)支持,您选中[文件](http://api.jquery.com/)。它具有关于适当使用的非常好的细节,以及添加/删除功能的版本。这应该永远是你的第一站,并且在提问之前一定要这样做。 – nbrooks 2013-02-14 06:38:57

回答

0

是的,它仍然支持。我认为你的代码存在的问题是你使用了text()。使用val()

$('#btn2').toggle(function() { 
    $('#btn2').val('show'); 
    },function() { 
     $('#btn2').val('hide');     
}); 
1

每更新的功能要求,只需两个内部文本值之间交替:

$('#btn2').click(function() { 
    $(this).text($(this).text()=='show'? 'hide':'show'); 
}); 


这不是 toggle一个签名。要使用它的隐藏/显示功能,这样做 $(elem).toggle()(显然,如果按钮隐藏在它不能说“秀”,那么想必你切换别的东西):

$(elem).toggle(); 
$('#btn2').text($(elem).is(':visible') ? 'hide' : 'show'); 
+0

抱歉,我只是希望按钮上的文字(值)从“显示”变为“隐藏”,“隐藏”为“显示”...。一旦被点击。一次又一次 – user2049259 2013-02-14 06:41:35

+0

@ user2049259注意:如果您使用'',使用'text',但是如果您使用''使用'val'。工作演示:http://jsfiddle.net/TxXVB/ – nbrooks 2013-02-14 06:50:29

1

试试这个:http://jsfiddle.net/W9JCR/

$('#btn2').click(function() { 
    ($(this).text()=='show') ? $(this).text('hide') : $(this).text('show'); 
});