На странице есть меню с кнопками, при нажатии на которые должен подгружаться контент из php-файлов и вставляться в соответствующие дивы. Страница статичная, без CMS. Подскажите какой из 2х описаных в заголовке вариантов подойдет для этого лучше всего? Какая между ними разница?
Если не углубляться в подробности, то разница только в том, что $(selector).load(url) загружает данные по url прямо в $(selector), а для $.get({...}) надо писать обработчик.
Используйте первый вариант, если он вас удовлетворяет, но если же вам надо отловить событие загрузки - используйте $.get()
UPDATE: В .load() также есть возможность подключить callback функцию при успешном завершении загрузки: .load( url [, data ] [, complete ] )
Пример:
$( "#result" ).load( "ajax/test.html", function() {
alert( "Load was performed." );
});
должен подгружаться контент из php-файлов и вставляться в соответствующие дивы
Это практически описание работы функции .load
Поэтому в данном случае стоит использовать ее.
$.get делает только GET запрос. В то же время, .load в зависимости от параметров может делать запрос любого типа и даже выбирать конкретный элемент из результата, который надо вставить на страницу.
Для это нужно указать в параметре url нужный селектор через пробел.
elements.load('site/url/ #element')
Приведенный код вставит только содержимое элемента с id=element а не всю загруженную разметку.
Разница так же заключается в возвращаемом значении: $.get возвращает Deferred (реализация Promise), в то время как .load возвращает текущую коллекцию, что позволяет продолжить с ней работать.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей