Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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 无法在同一函数中删除元素后添加元素_Javascript_Jquery - Fatal编程技术网

Javascript 无法在同一函数中删除元素后添加元素

Javascript 无法在同一函数中删除元素后添加元素,javascript,jquery,Javascript,Jquery,我已经看到删除和添加工作onclick。但绝不是在一个单一的功能中 我只是想要一个函数,当被调用时,它将从DOM中删除一个元素,并延迟重新添加该元素。-所以问题是,有人能帮我找出哪里出了问题吗 我可以删除元素,当它们被删除时,我可以获得警报。我可以添加延迟元素,它们就会出现 — 没问题 我可以分别创建每个函数,它们可以工作,但从另一个函数调用一个函数则不行。但当我试图用延迟和添加来替换警报时,什么也没发生。没有错误。没什么 我不能运行单独的函数,我需要在删除后直接进行添加。我需要函数在调用时反复

我已经看到删除和添加工作onclick。但绝不是在一个单一的功能中

我只是想要一个函数,当被调用时,它将从DOM中删除一个元素,并延迟重新添加该元素。-所以问题是,有人能帮我找出哪里出了问题吗

我可以删除元素,当它们被删除时,我可以获得警报。我可以添加延迟元素,它们就会出现 — 没问题

我可以分别创建每个函数,它们可以工作,但从另一个函数调用一个函数则不行。但当我试图用延迟和添加来替换警报时,什么也没发生。没有错误。没什么

我不能运行单独的函数,我需要在删除后直接进行添加。我需要函数在调用时反复运行,而不刷新页面

切换显示属性不是一个选项

$("#captcha").on("remove", function () {
    alert("Element was removed"); //works perfectly
    $("#contain").delay(10000).queue(function(next) {
        $(this).add('<iframe id="captcha" class="captcha" src="mypage.php"></iframe>');
    });  // doesn't work inside this function but works perfectly outside this function
});

function RemoveDiv() {
    var d = $("#captcha");
    d.remove();
}
RemoveDiv();
同样,我尝试创建一个函数AddDiv和add,然后调用AddDiv;从内部移除iv

更新:


append函数在RemoveDiv函数之外工作并创建延迟,如果我使用标准append函数,它在RemoveDiv函数内部工作,但它不会在延迟下工作。那么,我如何将这两件事结合起来,使延迟在RemoveDiv函数中起作用呢

多亏了@Evantimboli,我终于想出了一个解决方案

function RemoveDiv() {
    $('#captcha').remove();
    $('#contain').delay(10000).queue(function (next) {
        $(this).append('<iframe id="captcha" class="captcha"
        src="/includes/captcha.php" style="style=border:0; overflow: hidden; 
        position: absolute; z-index: 100; width: 430px; height:75px;left: 20px; top: 20px; 
        border:none;"></iframe>');

        next();
    });
}

添加一个延迟元素会给函数带来一个异步方面,这意味着在add函数退出后元素会被添加到DOM中——这是问题的一部分吗?请您的问题显示一个您尝试过的代码示例,或者至少显示一个您所说的独立工作的remove和add函数示例。在同一个函数中删除和重新添加元素有什么意义?千,复数,字面意思?真的吗?你没有问任何问题,你至少应该发布一个你尝试过的和你正在尝试实现的示例。@nnnnnnnn是的,我添加了代码。它已经是一个可调用的函数了。我认为您对JS中函数的工作方式有一些基本的误解。这与命名函数是一样的:您的问题是:我只想要一个函数,当调用它时,它将从DOM中删除一个元素,并延迟重新添加该元素。我教过你怎么做。如果这不是你的问题,更新你的问题。
function RemoveDiv() {
    $('#captcha').remove();
    $('#contain').delay(10000).queue(function (next) {
        $(this).append('<iframe id="captcha" class="captcha"
        src="/includes/captcha.php" style="style=border:0; overflow: hidden; 
        position: absolute; z-index: 100; width: 430px; height:75px;left: 20px; top: 20px; 
        border:none;"></iframe>');

        next();
    });
}