我正在为弹出窗口编写一个小函数,我陷入了延迟问题(或setTimeout)。功能背后的想法是什么:你可以知道需要切换哪个块,之后它将从视图中消失。如果延迟设置为0,则表示未应用,则不会消失。这是代码:
function toggleModal(et, delayed) {
//detect whether popup is visible or not
if(et.hasClass('acc-edit-fn'))
{
//hidden - then display
//when IE - fade immediately
if($.browser.msie)
{
$('#opacity-modal').height($(document).height()).toggleClass('acc-edit-fn');
}
else
//in all the rest browsers - fade slowly
{
$('#opacity-modal').height($(document).height()).toggleClass('acc-edit-fn').fadeTo('fast', 0.5);
}
et.html($(this).html()).toggleClass('acc-edit-fn');
if(delayed > 0) {
setTimeout(et.toggleClass('acc-edit-fn'), delayed);
setTimeout(('#opacity-modal').toggleClass('acc-edit-fn').removeAttr('style'), delayed);
}
}
else
{
//visible - then hide
$('#opacity-modal').toggleClass('acc-edit-fn').removeAttr('style');
et.toggleClass('acc-edit-fn');
}
};
这是一切崩溃的部分:
if(delayed > 0) {
setTimeout(et.toggleClass('acc-edit-fn'), delayed);
setTimeout(('#opacity-modal').toggleClass('acc-edit-fn').removeAttr('style'), delayed);
}
对于我将用于延迟的内容并不重要 - setTimeout或delay(),没有任何工作。有什么方法可以等待"延迟"之后才发生火灾事件?
答案 0 :(得分:1)
setTimeout接受在延迟后执行的函数或代码片段(字符串格式)。您在$
('#opacity-modal')
使用
if(delayed > 0) {
setTimeout(function(){et.toggleClass('acc-edit-fn'); }, delayed);
setTimeout(function(){ $('#opacity-modal').toggleClass('acc-edit-fn').removeAttr('style');}, delayed);
}