首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery replaceWith()麻烦

jQuery replaceWith()麻烦
EN

Stack Overflow用户
提问于 2012-01-04 19:36:53
回答 1查看 409关注 0票数 0

我试图重置闪存内容在我的滑块驱动的jQuery循环插件。

我想做的是:

  • 将以前".slide“中的每个" .flash”替换为空div,
  • 用以前的.flash数据替换已创建的空div。

我知道这听起来很愚蠢,但这是一种令人惊奇的方法来重置工作闪存内容,最好的替代方法(删除和附加)会导致很多样式问题,而且我不想使用任何swfobject.js和其他API。当然,躲藏也不是一个选择。

使用循环插件提供的"after“回调功能,一切都很完美,但不知怎么的,我无法检索原始的.flash内容,回调函数的最后一行根本什么也不做,.flash被永久地替换为空div:

代码语言:javascript
复制
jQuery("#slider").cycle({
  after: callbackAfter,
});

function callbackAfter(){
   var FlashContent = jQuery(this).prev('.slide').find('.flash'); //find any flash content in previous slide
   var FlashContentHolder = jQuery("<div></div>"); //place empty div instead
   FlashContent.replaceWith(FlashContentHolder ); //replace the flash content with empty div
   FlashContent.replaceWith(FlashContent); //This doesn't work - replace the empty div with stored flash content
}

问题是不显示原始FlashContent.的最后一行。

我试图将FlashContent & FlashContentHolder变量从函数中设置为更改作用域,但这不是重点,我想第一行是问题所在,因为我要删除一些东西,然后搜索它,所以我没有得到任何回报?

这个函数可以正常工作,并能完全满足我的需要(但不能在原始位置显示.flash视频,也不能使用绝对定位):

代码语言:javascript
复制
function callbackAfter(){
   var stopFlash = jQuery(this).prev('div').find('.flash').remove();
   jQuery(this).prev('div').append(stopFlash); 
}

这实际上适用于小问题(见上文).

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-04 19:44:24

在你打电话后

代码语言:javascript
复制
FlashContent.replaceWith(FlashContentHolder);

FlashContent不再存在于DOM树中,所以您不能用其他任何东西来替换它。您可能希望将最后一行更改为:

代码语言:javascript
复制
FlashContentHolder.replaceWith(FlashContent);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8732892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档