Разница между AddLoadEvent и загрузкой функции jQuery - PullRequest
3 голосов
/ 20 октября 2010

Я пытаюсь найти объяснение следующему вопросу, я осмотрелся и не нашел ничего удивительного: в чем разница между кодом Саймона Уиллисона для функции AddLoadEvent и функции loadот jQuery?

Вот ссылки:

  1. AddLoadEvent код: http://simonwillison.net/2004/May/26/addLoadEvent/

  2. .load функция jQuery см. APIзагрузка из jQuery

Дело № 1 (функция загрузки jQuery)

function replaceMissingImage(){
    //run code here...
}


$(window).load(function () {
  // run code
  replaceMissingImage();
});

или Дело № 2 (AddEventLoad - JS)

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}


function replaceMissingImage(){
    //run code here...
}

addLoadEvent(replaceMissingImage);

В: Могут ли эти два кода сделать то же самое?

$(window).load(function()) против AddLoadEvent

1 Ответ

2 голосов
/ 20 октября 2010

Да, этот код делает то же самое. jQuery внутренне использует нечто очень похожее на addLoadEvent для объединения функций, за исключением того, что оно работает для всех видов событий для всех видов элементов, а не только для onload из window. Он в значительной степени основан на решении addEvent Дина Эдвардса. Я бы порекомендовал просмотреть исходный код jQuery и выполнить поиск «edwards», чтобы найти этот раздел кода; его гибкость очень впечатляет.

...