Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery fadeIn显示太快_Javascript_Jquery_Ajax_Wordpress - Fatal编程技术网

Javascript jQuery fadeIn显示太快

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',

我正在用wordpress做一个ajax调用,当ajax调用完成后,我慢慢淡出div(效果很好),然后尝试淡入新数据,我目前正在使用jquery方法fadeIn()。无论我在这个方法中输入了多少数字或速度,似乎都不会对速度产生影响,甚至不会对6000毫秒这样的大数值产生影响

有人知道为什么吗?这是我的密码

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