2013-04-22 24 views
1

我有一個模塊,我想出現在模態窗口中的窗體。根據id,窗口可能是空白的,或者如果它顯示任何內容,所有類和id都被刪除,所以我無法驗證或設置窗體的樣式。Joomla的模式窗口刪除ID和類名

截斷代碼: ...

<div id="feedback"> 
    <div class="feedbackinner"> 
     <!-- form module --> 
     <div id="contact-wrapper"> 
      <!--form elements with ids and classes--> 
     </div> 
     <!-- end module --> 
    </div><!-- end .feedbackinner --> 
    </div><!-- end #feedback --> 

這觸發了模態窗口,但不(使用Firefox的Web開發者勾勒出當前元素)的任何ID或類:

<a href="#contact-wrapper" class="modal" rel="{handler: 'clone', clone: 'contact-wrapper'}">Click for ugly unstyled form that won't validate</a> 

這會觸發一個空白模態窗口:

<a href="#feedback" class="modal" rel="{handler: 'clone', clone: 'feedback'}">Click if you like staring at a blank white box</a> 

最重要的是,我如何將所有ID和類保存在模式窗口中,爲什麼不調用父級div工作?

(作爲一個工作,我搬來搬去形式向組件視圖,然後把它稱爲用handler: 'iframe',而不是克隆。我還是想知道發生了什麼事情與模態窗口。)

謝謝!

+0

你需要發佈更多的代碼 - 我真的不明白如何產生問題 – Adidi 2013-04-23 10:09:34

回答

3

未見代碼,但在元素上使用Element.clone的影響是顯而易見的。根據HTML的性質,id意味着獨特。這意味着你實際上不應該有多個元素同時注入到DOM中。

MooTools的正確反映了情緒通過隱含的任何元素去掉ID它創建的克隆:

https://github.com/mootools/mootools-core/blob/master/Source/Element/Element.js#L860

.clone方法接受可選參數,讓你可以重寫的東西:

clone: function(contents, keepid){ - 同樣見http://mootools.net/docs/core/Element/Element#Element:clone

克隆的元素也會丟失您可能已分配給它們的所有事件(但cloneEvents可以提供幫助)。

我會建議看一下squeezebox的實現並仔細檢查克隆是否以預期的方式實現。更好的做法可能是採用並重新附加元素 - 或複製整個innerHTML(儘管這會再次導致未委派的事件失敗)。