0

这个问题之前可能会问。但我找不到错误。这是来自新波士顿的视频教程。

$(document).ready(function(){
$('#btn').toggle(function(){
    $('#msg').html('yes');
},function(){
    $('#msg').html('No');
});
});

视频显示,第一次单击时 div 文本是yes,下次它显示no 但是当我尝试时,当页面加载时,按钮淡出和 div 显示no。为什么?可能还有其他方法可以实现此功能。但是为什么这不起作用。他将切换的语法显示为

$('#btn').toggle(function(){code},function{code});
4

1 回答 1

12

http://api.jquery.com/category/deprecated/

注意:此方法签名在 jQuery 1.8 中已弃用,并在 jQuery 1.9 中删除。jQuery 还提供了一个名为 .toggle() 的动画方法,用于切换元素的可见性。是否触发动画或事件方法取决于传递的参数集。

http://api.jquery.com/toggle-event/

OP评论后更新

演示

如果你想让这段代码在任何版本的 jQuery 中工作

$(document).ready(function () {
    var arr = ['yes', 'no'],
        i = 0;
    $('#btn').click(function () {
        $('#msg').html(arr[i++ % 2]);
    });
});

演示

如果您想toggle-event在将来使用类似的功能

使用.one()

$(document).ready(function () {
    function handle1() {
        $('#msg').html('yes');
        $('#btn').one('click', handle2);
    }

    function handle2() {
        $('#msg').html('no');
        $('#btn').one('click', handle1);
    }
    $('#btn').one('click', handle1);
});

或者

Toggle在 1.9 版本中被删除,所以你不能使用它——如果你想要这个逻辑可以手动实现或者你可以使用迁移插件

要包含迁移插件,在包含 jQuery 库后添加

<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
于 2013-09-15T01:40:55.410 回答