我剛接觸Javascript和Mootools,並且在理解某些內容時遇到了一些麻煩,特別是因爲有關Mootools的文檔是,我們應該說,缺乏充其量。
我的問題是關於$選擇器。
爲什麼我可以鏈接一些屬性,而不是其他屬性?
例如爲什麼
$('results').style.border = "1px solid #000000";
工作,但
$('results').innerHTML = "foo";
不?
在此先感謝。
我剛接觸Javascript和Mootools,並且在理解某些內容時遇到了一些麻煩,特別是因爲有關Mootools的文檔是,我們應該說,缺乏充其量。
我的問題是關於$選擇器。
爲什麼我可以鏈接一些屬性,而不是其他屬性?
例如爲什麼
$('results').style.border = "1px solid #000000";
工作,但
$('results').innerHTML = "foo";
不?
在此先感謝。
第一個例子實際上並不是一個「鏈接」的例子。
style
是表示元素CSS樣式的DOM標準對象。它與MooTools無關 - 它只是訪問對象屬性的標準點符號。
「鏈」是當一個對象上的操作的結果在手術後返回對象本身,讓你做這樣的東西:
$('id').show().move_left(200).fadeOut();
最後,那第二個例子應該工作。你應該發佈實際的來源。
一旦連接了Mootools方法,你是否不再能夠使用正常的內置Javascript函數?我以爲$也作爲document.getElementById的快捷方式? – 2009-08-12 20:46:34
它比這更復雜一點,所有不同的瀏覽器都有自己的怪癖和特徵。 Moo有一些包裝函數用於更改各種屬性,字段和值,從而隱藏所有瀏覽器兼容性內容。你當然可以在安全的東西上混搭,但總的來說,Moo非常有你應該堅持的風格。這裏的其他帖子顯示了像.setStyles(),.set(「html」,「foo」),.getValue()等這些輔助函數的例子。雖然混合和匹配'可以'讓你陷入混亂,最好使用包裝以方便(閱讀和調試) – 2009-08-14 13:05:27
三聯的答案很棒。我只是想幫助你從mootools中獲得更多的mo mo。
$('results').setStyle('border','1px solid #000');
$('results').set('html','foo');
// all together now
$('results').setStyle('border','1px solid #000').set('html','foo');
你不想使用innerHTML了,如果你抓住與$元素(或使用任何框架,真的)。
函數在調用時會返回一些內容。大多數mootools中的方法(函數)返回它改變的東西(比如$('results')),所以你可以鏈接另一個函數。
你的例子不是鏈接的。他們只是選擇你的對象的屬性,而不是調用方法。
我和你一樣,對於mootools和javascript一般都是新手。經過一段時間後,我想到了mootools,並且在不知不覺中同時學習了JavaScript。文件是不可或缺的。
您可以使用1個setter,因爲1.2 - element.set({styles:{prop:value,prop:value},html:「some string」});是的,您可以使用$作爲document.getElementById的簡單快捷方式。之後你應用的主要是基於元素原型(訪問本地或mootools函數) - 但返回的元素保留了它們之前可能擁有的任何品質......我一直認爲.innerHTML將會工作,只要你的瀏覽器允許它。檢查這個:http://mooshell.net/RRVWZ。你不應該直接訪問屬性 - 你不能鏈接方法,它可能不是跨瀏覽器。 – 2009-08-16 11:13:31
http://keetology.com/blog/2009/07/00-up-the-moo-herd-mootools-tips-and-tricks
這是一個偉大的介紹下級JavaScript Mootools的特點。
你可能想看看這個:http://mootools.net/docs/core/Element/Element#Element-Properties:html – Amber 2009-08-12 19:39:22