Отказ от ответственности: Я не эксперт 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 позволит цепочки и гораздо менее подробный код в целом. –
Хахаха, мне нравится, как YUI 3.x в основном YUI (издание jQuery). :П –