2012-07-02 27 views
0

我正在用請求加載一些html,並將其用作所有其他項目的模板。mootools Fx.Slide切換隱藏的元素不工作

我的代碼是:

itemDummy.destroy() 

this.content.each(function(task) { 
    // 
    //more code 
    // 
    item = itemDummy.clone(); 

    detailBox = item.getElement('.descriptionBox'); 

    detailBox.id = "description" + task.id; 
    //detailBox.toggle() 
    //open it on click 
    item.addEvent("click", function() { 
     new Fx.Slide("description" + task.id).toggle(); 
    }); 

    // 
    //more code 
    // 
    detailBox.inject(itemWrapper); 
    item.inject(wrapper); 
}); 

如果該行detailBox.toggle()被激活,我的盒子沒有顯示,但Fx的動畫。不要把工作(盒永遠不會出現可見)。 但是,當我設置這條線評論detailBox顯示和切換動畫正在工作,但我想要一個隱藏的盒子在開始。

但是,當我設置此行的註釋,該detailBox顯示和切換動畫工作,但我想箱無形下手

+1

如果使用http://mootools.net/docs/more/Fx/Fx.Slide#Fx-Slide:hide而不是切換,會發生什麼情況。如果它不起作用,嘗試在注入後調用它。 – Johan

+0

請不要在函數調用時使用'()'前面的空格,並添加';',但_certainly_不能同時使用,閱讀你的''style''需要付出相當大的努力和思考才能遵循它。考慮https://github.com/mootools/mootools-core/wiki/syntax-and-coding-style-conventions。 - 至於你的問題,你可以用它做一個jsfiddle.net的例子。 –

回答

1

繼約翰·發表意見注射後它的工作原理:

detailBoxIds.each(function (id) { 
    new Fx.Slide(id).hide(); 

    //instead of $$(id).hide() or $$(id).toggle() 
    //a direct toogle/hide hides the element, but the Fx.Slide can't open it again 
}) 

$$('.taksItemWraper').addEvent ("click", function() { 
    var id = this.getElement('.descriptionBox').id; 

    new Fx.Slide(id, { 
     duration:300 
    }).toggle(); 
}) 
+0

好聽! :) – Johan