玩過w /函數後,我試着用一個回調函數工作 - 這確實有效,並允許我根據需要更新任何設置。唯一的垮臺是我不得不等待當前的淡入淡出/超時完成,纔會出現新的設置。如果長時間超時(即20秒),用戶不得不等待它到期,然後才能在預覽中看到新的更新,這不是我想要的b/c。我面臨的問題是,我無法清除正在設置的超時,B/c它們的timeoutID從未在原始插件中設置。所以我修改了原來的腳本來設置這些,所以我可以訪問它們再回想在innerfade功能innerfade功能
:
$.innerfade.startTimeout = setTimeout(function() {
$.innerfade.next(elements, settings);
}, settings.timeout);
在接下來的功能
:
$.innerfade.continueTimeout = setTimeout((function() {
$.innerfade.next(elements, settings);
}), settings.timeout);
現在我可以將事件綁定到我的表單元素,當他們改變時,清除這些超時,並重新分配函數到我包含的div。
$('#timeout').change(update);
function update()
{
if (typeof($.innerfade.startTimeout) != 'undefined') {
clearTimeout($.innerfade.startTimeout);
}
if (typeof($.innerfade.continueTimeout) != 'undefined') {
clearTimeout($.innerfade.continueTimeout);
}
$('#container').innerfade({[opts]});
}