我正在尝试在完成后重新执行另一个回调。但出于某种原因,它一下子就完成了这些工作。
以下是代码:
$('video#videopromo').bind('ended',function()
{
$("#hero").fadeIn("slow", function()
{
$(this).css("visibility", "visible");
$("#videopromo").css({zIndex: -1});
$(this).css("display", "block");
});
});
我希望#hero能够淡入,因为它反对立即显示这是最好的方法吗?
答案 0 :(得分:0)
尝试查看.when
和.done
。
http://api.jquery.com/jQuery.when/ http://api.jquery.com/deferred.done/
这将允许您等到某事完成后再开始其他事情。
答案 1 :(得分:0)
我把你的代码放到jsFiddle中,它对我有用。虽然我怀疑您在CSS中使用了visibility:hidden
,但我使用了display:none
。我已经注释掉了(这个)的css()代码,因为我觉得你不需要它,我稍微重构了一下,但它的工作原理非常好;
#hero { display:none; }
这里有一些有效的代码(但是你的代码与上面的CSS一样工作);
$(document).ready(function(){
$("#videopromo").bind('click',function(e){
var videopromo = $(e.target);
console.log(e.target);
$("#hero").fadeIn("slow", function(){
console.log("callback");
//$(this).css({visibility:"visible",display:"block"});
videopromo.css({zIndex: -1});
});
});
});
(点击'视频'进行测试)
这是另一个fiddle使用visibility:hidden
也是如此。
$(document).ready(function(){
$("#videopromo").bind('click',function(e){
var videopromo = $(e.target);
console.log(e.target);
$("#hero").css({visibility:"visible"})
.hide()
.fadeIn( 500, function(){
console.log("fully faded in now");
videopromo.css({zIndex: -1});
});
});
});
答案 2 :(得分:0)
我通过扩展@cirrus所说的解决了这个问题而不是隐藏元素我给视频一个$(“#videopromo”)。css(“position”,“relative”);在节目中,所以内容不会在视频后面。一旦完成它就会恢复!
由于
全部为您提供帮助