jQuery toggle()函数不起作用

Sha*_*eer 0 html javascript jquery html5 toggle

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

$(document).ready(function(){
$('#btn').toggle(function(){
    $('#msg').html('yes');
},function(){
    $('#msg').html('No');
});
});
Run Code Online (Sandbox Code Playgroud)

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

$('#btn').toggle(function(){code},function{code});
Run Code Online (Sandbox Code Playgroud)

Tus*_*har 12

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

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

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

OP评论后更新

DEMO

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

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

DEMO

如果你想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);
});
Run Code Online (Sandbox Code Playgroud)

要么

版本1.9删除了切换,因此您无法使用它 - 如果您希望手动实现此逻辑,或者您可以使用迁移插件

包含jQuery库添加后包含迁移插件

<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
Run Code Online (Sandbox Code Playgroud)

  • @Shameer:如果您发现答案有用,请单击此答案左侧投票箭头下方的勾号接受答案.谢谢! (4认同)