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