2012-02-02 55 views

回答

3

爲什麼第一個人工作的原因是 - 因爲它 - 在mootools中的$ selector(document.id)返回實際元素。這在常規瀏覽器中與document.getElementById()相同,並且元素對象公開了它的任何及所有屬性/屬性供您編輯。

與不使用.SET的問題是:

  • 時MooTools的2.0又名MILK得到釋放,它不會工作,因爲它會被裹得像個jQuery和選擇器不會返回對象(MooTools的正在成爲AMD,因此它不會修改本地類型 - 元素,數組,數字,字符串,函數(也許!) - 原型)。
  • 你不能連鎖這個。例如,您可以:$('someid').set("html", "loading...").highlight();
  • set被重載 - 它可以通過傳遞一個對象來設置單個屬性或倍數。例如,element.set({html: "hello", href: "#", events: boundObj});
  • 看看https://github.com/mootools/mootools-core/blob/master/Source/Element/Element.js#L936-942 - 你可以傳遞一個數組作爲參數,它會加入它適合你,這使得它容易多行字符串的工作,並在IE
  • 確保性能

編輯:BBT粉絲曾經打開過一個單獨的主題:框架是否應該阻止你/阻止你做出破壞瀏覽器的事情?

    ,如果你願意,你可以通過改變setter方法 Element.Properties.html.set = function() { var tag = this.get("tag"); ... check tag };添加不允許的元素
  • - 是不是mootools的偉大?

mootools的 - 默認 - 不會試圖阻止你做蠢事[TM] - 這是你的責任:)嘗試在元素上設置高度在IE負值,例如。 Fx課程應該阻止你這樣做嗎?否。二傳手是否會阻止你?不可以。通過不斷檢查來確定你是否沒有中斷,這意味着它會在動畫等性能關鍵的情況下降低速度。

+0

......但'新的元素();'會的,對吧?我只是問,因爲我過去對'元素'的調用失敗了,因爲我插入了直接的文本到'tbody'中。 (目前確切的條件無法迴避,因爲我依賴於我的記憶) – 2012-02-02 17:56:20

相關問題