gpt4 book ai didi

jquery - fn.toggle( handler(eventObject), handler(eventObject)...) 去哪儿了?

转载 作者:行者123 更新时间:2023-12-03 21:46:06 29 4
gpt4 key购买 nike

我有this jsfiddle

它使用 toggle event - 不要与 toggle 混淆- jQuery 版本设置为 EDGE

它突然停止工作并删除了我想要作为触发器的单元格,因为它显然恢复为 toggle

我找不到任何弃用标签等

http://api.jquery.com/category/deprecated/给出 404

如果我添加 Migrate模块我的jsFiddle then works我在控制台中看到了警告(由 https://github.com/jquery/jquery-migrate/blob/master/warnings.md 由 Frédéric Hamidi 发布)

我明白了Deprecate fn toggleissue 24Ticket #11786但不是在我期望看到它的地方。

我缺少什么以及在哪里可以找到它的替代品和文档?

注意:我了解弃用的原因,只是找不到弃用的官方文档

$('#tbl .xx').toggle(
function() {
$(this).siblings().each(function(){
var t = $(this).text();
$(this).html($('<input />',{'value' : t}));
});
},
function() {
$(this).siblings().each(function(){
var inp = $(this).find('input');
if (inp.length){
$(this).text(inp.val());
}
});
}
);

迁移中的代码:

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

更新我问他们是否可以将代码保留为 fn.toggler,这样它是重命名而不是删除

最佳答案

jquery .toggle() 的弃用现已记录在 api.jquery.com 。我在 forum.jquery 找到了一个很好的替代品我现在正在使用的。效果很好:)

$.fn.toggleClick = function() {
var functions = arguments,
iteration = 0;
return this.click(function() {
functions[iteration].call();
iteration = (iteration + 1) % functions.length;
});
}

用法:

$("#target").toggleClick(function() {
alert( "First handler for .toggle() called." );
}, function() {
alert( "Second handler for .toggle() called." );
});

编辑 2014 年 8 月 6 日:我重新考虑了原始代码,发现 .apply 不是正确的使用方式。将其更改为不传入参数的 .call。

关于jquery - fn.toggle( handler(eventObject), handler(eventObject)...) 去哪儿了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14301935/

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