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

时间:2016-08-19 02:36:35

标签: javascript jquery

我见过删除并添加工作onclick。但绝不是一个单一的功能。

我只想要一个函数,当调用它时,将从DOM中删除一个元素,并重新添加元素。 - 所以问题是,有人可以帮我弄清楚我哪里出错了。

我可以删除元素,删除后可以收到警报。我可以添加延迟的元素,它们出现 - 没问题。

我可以单独制作每个功能并且它们可以工作(尽管从另一个中调用一个不起作用)。但是,当我尝试用延迟和添加替换alert时,没有任何反应。没有错误。什么都没有。

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

切换display属性不是一种选择!

$("#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()并添加然后调用AddDiv();来自RemoveDiv();

更新

function RemoveDiv() {
    $('#captcha').remove();
    $('#contain').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>').delay(10000).queue(function (next) {
        $('#contain').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();
    });
}

append函数在RemoveDiv函数之外工作并创建一个延迟,如果我使用标准追加它在RemoveDiv函数内部工作,但它不会延迟工作。那么我如何加入这两个东西,以便延迟在RemoveDiv函数内部工作?

1 个答案:

答案 0 :(得分:0)

感谢@EvanTrimboli,我终于能够找到解决方案了。

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