Javascript jQuery fadeIn显示太快
我正在用wordpress做一个ajax调用,当ajax调用完成后,我慢慢淡出div(效果很好),然后尝试淡入新数据,我目前正在使用jquery方法fadeIn()。无论我在这个方法中输入了多少数字或速度,似乎都不会对速度产生影响,甚至不会对6000毫秒这样的大数值产生影响 有人知道为什么吗?这是我的密码Javascript jQuery fadeIn显示太快,javascript,jquery,ajax,wordpress,Javascript,Jquery,Ajax,Wordpress,我正在用wordpress做一个ajax调用,当ajax调用完成后,我慢慢淡出div(效果很好),然后尝试淡入新数据,我目前正在使用jquery方法fadeIn()。无论我在这个方法中输入了多少数字或速度,似乎都不会对速度产生影响,甚至不会对6000毫秒这样的大数值产生影响 有人知道为什么吗?这是我的密码 jQuery.post(ajaxurl, data, function(response) { jQuery('#mc_embed_signup').fadeOut('2000',
jQuery.post(ajaxurl, data, function(response) {
jQuery('#mc_embed_signup').fadeOut('2000', function() {
jQuery('#mc_embed_signup').replaceWith(response);
jQuery('#mc_embed_signup').fadeIn('6000');
});
您必须先隐藏替换的内容,然后淡入
var replacedElem = null;
jQuery('#mc_embed_signup').replaceWith((replacedElem = $(response).hide(),replacedElem));
replacedElem.fadeIn(6000);
您错误地选择了元素。您必须缓存要替换的元素,并根据您的需求对其进行操作。这是隐藏和淡入
为什么我需要缓存用于替换的元素?一定是您的问题
答案是,是这样说的
.replaceWith()方法与大多数jQuery方法一样,返回
jQuery对象,以便其他方法可以链接到该对象上。然而,
必须注意,返回的是原始jQuery对象。这
对象引用已从DOM中删除的元素,而不是
取代它的新元素
因此,我们无法将新替换的元素链接起来。在使用它之前,我们必须把它存放在某个地方。只给它600而不是“600”。 它接受像600这样的整数值,而不是像“600”这样的字符串。 或者你可以给
.fadeIn('fast')
或
正如IrkenInvader在他的评论中指出的那样,当id被替换时,您将丢失对元素的引用 您可能希望将要替换的容器包装在另一个容器中,然后淡入/淡出此包装容器,如下所示:
<div id="wrapper">
<div id="mc_embed_signup">...</div>
</div>
jQuery.post(ajaxurl, data, function(response) {
jQuery('#wrapper').fadeOut(2000, function() {
jQuery('#mc_embed_signup').replaceWith(response);
jQuery('#wrapper').fadeIn(6000);
});
});
...
post(ajaxurl、数据、函数(响应){
jQuery(“#包装器”).fadeOut(2000,function(){
jQuery('#mc_embed_signup').replaceWith(响应);
jQuery(“#包装器”).fadeIn(6000);
});
});
此外,与阿萨德提供的答案一样,fadeIn()
/fadeOut()
只接受数字(时间单位为毫秒)或带有实际速度名称的字符串,如slow
或fast
还值得一提的是,这些方法也接受options对象,它提供了许多方法和属性:
响应中会出现什么?不是用
替换核化您的#mc_嵌入_注册
?因此,第二个选择器找不到任何内容,新内容会立即显示,因为它没有隐藏。不要将数字放在引号中。替换id后,您将丢失对元素的引用。
否。您没有。读一下,是的replaceWith
返回该对象,因此当您在其上链接另一个函数时,可以使用该“旧”对象。但在他的例子中,他已经结束了函数调用,并尝试选择不再可以使用id作为选择器访问的元素。
<div id="wrapper">
<div id="mc_embed_signup">...</div>
</div>
jQuery.post(ajaxurl, data, function(response) {
jQuery('#wrapper').fadeOut(2000, function() {
jQuery('#mc_embed_signup').replaceWith(response);
jQuery('#wrapper').fadeIn(6000);
});
});