В моем сценарии wordpress я использую условные операторы только для того, чтобы вставить в очередь скрипт кладки на определенных страницах. У меня также есть глобальный раздел javascript, который загружается на все страницы, содержащие скрипт для активации функциональности кладки:
$container.masonry({
itemSelector: '.img-container',
gutter: ".gutter-sizer"
});
Это отлично работает, когда основной скрипт кладки загружается на страницу, но выбрасывает undefined is not a function
ошибкой undefined is not a function
если она не загружена. Как проверить, не загружена ли каменная кладка перед выполнением вышеуказанного кода? Я предполагаю, что это применимо к большинству jQuery-плагинов и другим js-скриптам таким же образом.
if ($.fn.masonry) {
//...
}
Однако мне действительно не нравятся такие условия. Вы также должны убедиться, что скрипты, использующие библиотеку, загружаются только при необходимости.
Масонство определяет глобальное, поэтому вы можете просто сделать:
if (window.Masonry) {
// Masonry has been loaded
}