【问题标题】:jQuery toggle() function not workingjQuery切换()函数不起作用
【发布时间】:2013-09-15 01:39:06
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您使用的是哪个版本的 jQuery?期望视频中显示相同的结果是合理的,特别是如果您使用相同版本的 jQuery,但是当您得到不同的结果时,您是否考虑查看 .toggle() documentation

标签: javascript jquery html toggle


【解决方案1】:

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]);
    });
});

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);
});

Toggle 是 removed in version 1.9,所以你不能使用它 - 如果你想要这个逻辑可以手动实现,或者你可以使用 migration plugin

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

<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>

【讨论】:

  • 那么如何才能实现我想要的功能呢。你可以修改上面的代码并给出jqery 2.1的正确代码
  • tnx 我觉得很有帮助
  • @Shameer:如果您发现答案有用,请单击该答案左侧投票箭头下方的勾号来接受答案。谢谢!
  • 谢谢你,伙计,你节省了我的时间。我正在用 jquery 和 joomla 用 mootools 重构一个网站,我只是想破脑袋......该死的
  • @Flextra 很高兴它帮助了你:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-07
  • 2011-01-20
  • 2022-01-10
  • 1970-01-01
相关资源
最近更新 更多