gpt4 book ai didi

toggle - 已弃用的 jQuery Toggle 事件的等效项

转载 作者:行者123 更新时间:2023-12-03 21:33:48 25 4
gpt4 key购买 nike

jQuery 的 Toggle Event功能有been removed作为版本 1.9 的一部分。

我像这样使用这个函数:

$('#example').toggle(function() {
do stuff
}, function() {
do stuff
});

现在切换事件已经消失,重现此功能的最佳方法是什么?

最佳答案

加载 MIGRATE 并查看其中的代码

查看我关于同一件事的帖子

Where has fn.toggle( handler(eventObject), handler(eventObject)...) gone?

我建议他们将其重命名为 fn.toggler 而不是删除它

这是代码 - 它是一个独立的 jQuery 插件,可以按原样使用。

jQuery.fn.toggle = function( fn, fn2 ) {
// Don't mess with animation or css toggles
if ( !jQuery.isFunction( fn ) || !jQuery.isFunction( fn2 ) ) {
return oldToggle.apply( this, arguments );
}
// migrateWarn("jQuery.fn.toggle(handler, handler...) is deprecated");
// Save reference to arguments for access in closure
var args = arguments,
guid = fn.guid || jQuery.guid++,
i = 0,
toggler = function( event ) {
// Figure out which function to execute
var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
// Make sure that clicks stop
event.preventDefault();
// and execute the function
return args[ lastToggle ].apply( this, arguments ) || false;
};
// link all the functions, so any of them can unbind this click handler
toggler.guid = guid;
while ( i < args.length ) {
args[ i++ ].guid = guid;
}
return this.click( toggler );
};

较短的、未经测试的版本:

(function( $ ){
$.fn.toggler = function( fn, fn2 ) {
var args = arguments,guid = fn.guid || $.guid++,i=0,
toggler = function( event ) {
var lastToggle = ( $._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
$._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
event.preventDefault();
return args[ lastToggle ].apply( this, arguments ) || false;
};
toggler.guid = guid;
while ( i < args.length ) {
args[ i++ ].guid = guid;
}
return this.click( toggler );
};
})( jQuery );

关于toggle - 已弃用的 jQuery Toggle 事件的等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14338078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com