我正在尝试在由 jQuery Cycle Plugin 提供支持的滑块中重置 Flash 内容。
我想做的事:
- 用空 div 替换之前“.slide”中的每个“.flash”,
- 用以前的 .flash 数据替换创建的空 div。
我知道这听起来很愚蠢,但这是一种重置工作 Flash 内容的好方法,最好的替代方法(删除和附加)会导致很多样式问题,而且我不想使用任何 swfobject.js 和其他 API。当然隐藏也不是一种选择。
使用 Cycle Plugin 提供的“after”回调一切正常,但不知何故我无法检索原始的 .flash 内容,我的回调函数的最后一行只是什么都不做,并且 .flash 被永久替换为空 div:
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 视频,而且我不能使用绝对定位):
function callbackAfter(){
var stopFlash = jQuery(this).prev('div').find('.flash').remove();
jQuery(this).prev('div').append(stopFlash);
}
这实际上适用于小问题(见上文)。
有任何想法吗?