基本上你的mootools是正確的,但是缺少一些能使你的腳本正常工作的關鍵項目。我已經貼下文一個工作版本,然後提出一些看法:在 3號線
var slide = new Fx.Slide($("error"));
slide.slideOut('horizontal').chain(function() {
$('error').set('text', message); this.callChain(); //NOTE
}).chain(function() {
this.slideIn('horizontal');
}).chain(function() {
this.slideOut.delay(3000, this, 'horizontal'); //NOTE
});
- 通知的this.callChain()。沒有這個是什麼 阻止你看到任何東西。 FX類使用callChain() 方法在內部開始下一個 步驟順序,但如果你 參數鏈()不包含FX的方法 之一,callChain()是 不叫,所以你必須手動執行 。
- 您的延遲電話是在錯誤的地方。 Delay()延遲了它所應用函數的執行,它不會在鏈中插入一個暫停。因此,要顯示3秒的錯誤消息,您需要將延遲添加到最後一個函數調用中,因爲這是您想要減速的那個。
- 您對延遲的調用不正確。延遲適用於函數,而不是函數的返回值,因此Dimitar的建議如上。請參閱mootools核心文檔中的function以獲取更多信息
- 通過它的聲音,您沒有安裝螢火蟲。這可以讓你探索DOM,發現你的代碼改變了頁邊距然後是文本,但是之後沒有任何反應。 Firebug是超級有用的,所以安裝它儘快
- 我的解決方案(MooTools的1.3)低於,基本上relfects什麼貝爾巴托夫是在暗示:
$('error').set('slide', {
mode: 'horizontal'
}).get('slide').slideOut().chain(function() {
$('error').set('text', message); this.slideIn();
}, function() {
this.slideOut.delay(3000, this);
});
希望它可以幫助
你能後你的錯誤是具有? – Colum 2011-01-24 17:18:40