2015-07-29 3 views
0

Я программирую с помощью jQuery после вызова Modernizr. Modernizr использует AJAX для загрузки кода JavaScript и CSS.

Вызывается код не работает с

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

То же самое с другими селекторов, как $ ('IMG'), $ ('объект'), и т.д ...

Но работы с:

$(window).prop('complete',function(){ 
    // Some code 
}); 

И другие селекторы ...

тестирования оба коды без Modernizr, $ (окно) .prop ('полного') огня первого

Какой разница Разногласия между ними?

Почему все используют $ (window) .load вместо $ (window) .prop ('complete')?

+0

'window.complete' обычно является взломом для более старого IE, который не всегда запускает событие' onload', когда содержимое кэшируется. Кроме того, текущее окно загружается только один раз, если вы загружаете контент с помощью ajax, он не будет запускаться снова. И самая важная часть, ваша функция 'prop()' является просто обратным вызовом для установки значения, она не имеет ничего общего ни с чем, что даже отдаленно связано с загрузкой окна. – adeneo

ответ

3

Эти функции выполняют совершенно разные вещи.

load запускает функцию обратного вызова, когда страница закончила загрузку. Это означает, что это асинхронный; то есть код на следующей строке, вероятно, произойдет до того, как будет выполнен обратный вызов.

prop делает что-то совсем другое. Это способ установки свойства на элемент динамическим способом. Обычно он используется на наборах элементов. Например, это будет инвертировать все checked свойства на всех radio кнопок:

$('input[type="radio"]').prop('checked', function(i, oldProp) { 
    return !oldProp; 
}); 

Этот код синхронное. Это означает, что все они запускаются немедленно; последующие строки кода не запускаются до тех пор, пока не будут выполнены все обратные вызовы.

So $(window).prop('complete', function() {...}); - очень странный синтаксис. Это в основном так же, как это:

window.complete = '...'; 

Это даже отдаленно не делать то же самое, как $(window).load(). Он работает для настройки свойств объекта window, но нет никакого мыслимого времени, когда это было бы полезно, по моему опыту.

Смежные вопросы