免責聲明:我不是一個YUI專家,可能有更好的方法來做這些事情。
此外,jQuery擅長做你已經忍受。 YUI的構建更多的是它的小部件,所以你可能會發現它的核心功能不如jQuery的全面(也就是說,它並不會取代你一直想用函數調用來完成DOM的任何事情)。我覺得使用YUI 2.x是因爲他們需要小部件(我使用他們的菜單相當多)。
#1:您需要包括此:
<script type="text/javascript" src="http://yui.yahooapis.com/2.7.0/build/yahoo/yahoo-min.js"></script>
<script type="text/javascript" src="http://yui.yahooapis.com/2.7.0/build/dom/dom-min.js"></script>
代碼如下:
var el = YAHOO.util.Dom.get('foo');
YAHOO.util.Dom.setStyle(el, 'color', 'yellow');
YAHOO.util.Dom.setStyle(el, 'background', 'black');
或者......
YAHOO.util.Dom.setStyle('foo', 'color', 'yellow');
YAHOO.util.Dom.setStyle('foo', 'background', 'black');
#2:沒有鏈接在YUI 2.x中,所以你的解決方案將不會是幾乎相同的:
var el = YAHOO.util.Dom.get('foo');
YAHOO.util.Dom.setStyle(el, 'color', 'red');
YAHOO.util.Dom.addClass(el, 'bar');
// Not sure how to set contents with YUI... would just use:
el.innerHTML = "!";
反正我不在乎鏈接,我認爲這段代碼更具可讀性。 (對不起,編輯。)
#3:再次,不知道如何直接設置HTML,除了使用innerHTML ...我想它會僅僅是:
var el = YAHOO.util.Dom.get('menu');
el.innerHTML += '<li>An extra item</li>';
#4:你必須包括對這個解決方案不同的類別:
<script type="text/javascript" src="http://yui.yahooapis.com/2.7.0/build/yahoo/yahoo-min.js" ></script>
<script type="text/javascript" src="http://yui.yahooapis.com/2.7.0/build/event/event-min.js" ></script>
而這裏的代碼:
var lis = document.getElementsByTagName("li");
YAHOO.util.Event.addListener(lis, 'click', function() {
alert('Clickety-click!');
});
再次,遺憾的是這些可能不是倒數第二個YUI解決方案。另外,如果您擔心「YAHOO.util.longname.method」的不斷使用,您可以輕鬆創建自己的局部變量。 YUI確實在他們的圖書館這一切的時候:
(function() {
var Event = YAHOO.util.Event;
// Insert all your code here...
})();
感謝您的解釋。很高興知道YUI 3將允許鏈接,並且一般來說更少冗長的代碼。 – 2009-05-02 07:23:01