出于某种原因,我不能按顺序运行jQuery。
请参阅:http://jsfiddle.net/Az9E2/
我想点击一个按钮,并按顺序执行以下功能:
focus
提供给textarea box-shadow
添加到textarea 100ms
的延迟transition
课程添加到textarea box-shadow
,然后很好地观看fade out
然而,当我这样做时,它只做一次,所以box-shadow
永远不会出现。
或者,如果我删除最后一个阶段,那么框阴影fades in
,意味着(4)发生在(2)之前。
有什么想法吗?
答案 0 :(得分:2)
.delay()方法最适合在排队的jQuery之间延迟 效果。因为它是有限的 - 例如,它没有提供一种方法 取消延迟-.delay()不是JavaScript本机的替代品 setTimeout函数,可能更适合某些用途 例。
来源:http://api.jquery.com/delay/
你提到的其他要点当然都是一次性发生(到眼睛),因为没有延迟阻止它。
尝试:http://jsfiddle.net/JH4fM/2/
$('#change').on('click', function () {
var $el = $(".snapp_view_ask_question_textarea");
$el.focus().css("box-shadow", "rgba(139, 0, 0, 0.5) 0px 0px 30px 2px");
setTimeout(function () {
$el.css("box-shadow", "");
}, 400);
});
答案 1 :(得分:0)
function ChangeStory(){
$(".snapp_view_ask_question_textarea").focus().css("box-shadow", "rgba(139, 0, 0, 0.5) 0px 0px 30px 2px").addClass("textarea_transition");
setTimeout(function(){$(".snapp_view_ask_question_textarea").css("box-shadow", "");}, 400);
}
答案 2 :(得分:0)
使用jquery的delay
函数构建一些东西。
您可以找到演示here