jQuery .toggle事件已被弃用,应该使用什么?

10

由于jQuery的.toggle事件方法已被弃用。 我们应该使用什么来模拟此事件(交替点击)?


你能提供代码吗? - Dom
jQuery的toggle()方法有一个很好的功能,可以在两个或多个事件之间切换。但是,它不支持传递额外的数据(eventData)参数。你是否知道任何替代方法,可以支持这个功能? - Jack Daniel's
我已经阅读了文档,toggle()动画方法可以切换元素的可见性,但这不是我想要的。 - user1834464
也许这个链接可以帮到你。(抱歉,我一开始误读了你的问题) - jahroy
好的,我会看一下。 - user1834464
显示剩余2条评论
2个回答

9

将此代码放在 document.ready 之外

$.fn.clicktoggle = function(a, b) {
    return this.each(function() {
        var clicked = false;
        $(this).click(function() {
            if (clicked) {
                clicked = false;
                return b.apply(this, arguments);
            }
            clicked = true;
            return a.apply(this, arguments);
        });
    });
};

然后使用以下内容来复制 .toggle 功能:

$("#mydiv").clicktoggle(functionA,functionB);

JQuery论坛上发现


抱歉,这是什么?这是您编写的函数吗?为什么要使用 $.fn.clicktoggle,并且如何调用此函数?感谢您的回答! - user1834464
以上代码通过添加新方法来扩展jQuery对象。您可以将该代码添加到“_on ready_”处理程序中。然后,您可以像调用jQuery方法一样调用clicktoggle()。您可以在此处阅读有关添加jQuery方法的信息(https://dev59.com/U2ct5IYBdhLWcg3wcs-G)。 - jahroy
没有问题,如果这个解决方案对您有用,如果您能将其标记为已解决,那就太好了。 - Jay Lane
1
是的,我必须等待4分钟 :)。 - user1834464

-1
var i = 0;    
$('button').click(function() { 
    if (i == 0){        
        $('div').css({background: 'red'}) 
        i++; 
    } else { 
        $('div').css({background: 'yellow'}) 
        i = 0; 
    }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接