使用.replaceWith无法将ID恢复生机

时间:2012-03-12 15:24:23

标签: jquery

我正在尝试使用.replaceWith将DOM中的ID带回来,即使我之前已经使用包含iframe的div替换了它。

我知道有人会建议切换,显示,隐藏,但我不想因为javascript滑块同时存在潜在视频而将每个div加载到彼此之上,这对于移动浏览来说可能会变得很难看。

我正在使用“完成”链接的点击事件,该链接将用户带回到他们开始的javascript幻灯片(滑块包装器)。

在.replaceWith。

之后,不能将#strip-wrapper ID从死里复活

我显然已经尝试过:

    $('a.back').live('click', function(evt) {
       slider = $('#slider-wrapper') 
        $('div.item-container').replaceWith(slider);
        evt.preventDefault();

..和许多其他技巧但它不想在第一个.replaceWith

之后回来

旁注

safari没有'听到'.replaceWIth的第二次点击事件,但firefox确实

非常感谢任何帮助!

$(window).load(function () {
    $('a.link').live('click', function(evt) {
        item = $('<div class="item-container"><iframe></iframe><a class="back">Done</a></div>');
        $('#slider-wrapper').replaceWith(item);
        evt.preventDefault();
    });

    $('a.back').live('click', function(evt) {

        $('div.item-container').replaceWith($('#slider-wrapper'));
        evt.preventDefault();       
    });
});

1 个答案:

答案 0 :(得分:1)

replaceWith会从DOM中移除$('#slider-wrapper'),因此当点击“完成”时,您不能简单地选择它,因为您已将其删除。

您必须隐藏它,将其存储在其他位置或重新创建它。

toggle非常适合这样的事情......你为什么要使用replaceWith?

以下是使用toggleafternextremove的示例:http://jsfiddle.net/QxyDf/