Специализни шаблонца! (udpn) wrote,
Специализни шаблонца!
udpn

jQuery vs Google Closure

jQuery:
function select(elem, f) {
    elem.toggleClass('tab-selected', f);
    $('#' + elem.data('link')).toggle(f);
}

$('.tab-button').each(function () {
    select($(this), $(this).hasClass('tab-selected'));
    $(this).click(function () {
        select($(this).closest('.tab-header').find('.tab-selected'), false);
        select($(this), true);
    });
});




Google Closure:
function select(elem, f) {
  goog.dom.classes.enable(elem, 'tab-selected', f);
  goog.style.showElement(goog.dom.getElement(goog.dom.dataset.get(elem, 'link')), f);
}

goog.array.forEach(goog.dom.getElementsByClass('tab-button'), function (cmdTab) {
  select(cmdTab, goog.dom.classes.has(cmdTab, 'tab-selected'));
  goog.events.listen(cmdTab, goog.events.EventType.CLICK, function () {
    goog.array.forEach(goog.dom.getElementsByClass('tab-selected'), function (cmdCurrTab) { select(cmdCurrTab, false); });
    select(cmdTab, true);
  });
});




Несмотря на то, что я категорически не согласен с известной явно проплаченной статьёй, где автор пытается двумя с половиной багами доказать, что Closure трогать не стоит, и jQuery так-то ещё то говно, но всё же не стоит.

UPD. Собсно, мне прояснили, что http://jsperf.com/google-closure-vs-jquery-dom/3
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 10 comments