Я прочитал с веб-сайта jQuery, что get () загружает данные с сервера, используя HTTP-запрос GET.Но этого объяснения недостаточно, например, для приведенного ниже примера:
Просто для того, чтобы дать некоторый контекст для моего вопроса, когда мы присваиваем значение двух параметров переменной expoptions:
var expoptions = $.extend(defaults, options);
Параметр defaults является литералом объекта из пар ключ / значение по умолчанию, которые не определены в параметре options:
$.fn.explorerGrid = function(options) {
var defaults = {
order: 'make',
page: 1,
id: 0,
per_page: 20,
url: "/honda",
additional: function(){return {ololo:'trololo'};},
};
Параметр options является литералом объекта пар ключ / значение, переданных какпараметр при вызове метода explorerGrid ():
Honda.prototype.explorer_create=function(){
var component = this;
this.opts_exp = {
order: this.default_order_str,
url: "/"+this.resource_url_str,
additional: function(){return component.filter_func();}
};
jQuery(this.exp_id).explorerGrid(this.opts_exp); //exp_id is just a div container that holds a table we intend to populate with data
Затем мы перебираем литералы объекта нашего Honda, присваивая per_page (например, 20), order (например, 'make'), page (например, 1) изнаши expoptions возражают против некоторых глобальных переменных:
return this.each(function() {
var expobj = $(this);
var params = {
per_page: expoptions.per_page,
order : expoptions.order,
page : expoptions.page,
};
---- часть, которую я не понимаю ---- когда мы вызываем метод get (), мы передаем некоторые аргументы, один - expoptions.url (например, '/ honda'), params (который содержит объектный литерал пар ключ / значение, которые определяют, как мы хотим заполнить таблицу, и он также содержит другой литерал объекта из дополнительного () метod, который содержит пары ключ / значение отфильтрованных критериев, таких как: 'Year: 2008', 'Make: Honda'), а затем мы вызываем функцию, которая выглядит как анонимная функция, передавая параметр с именем data, которыйЯ не уверен, откуда это исходит, потому что, как я уже сказал, эта функция, кажется, нигде не определена, а затем она вызывает метод html () для объекта expobj, который является нашим объектом, таким как Honda, ив этом параметре данных. Я не уверен, что метод get () должен делать с этими тремя параметрами: expoptions.url, params, function (data).Если кто-нибудь знает, что делает метод get () с этими параметрами, я хотел бы получить некоторые пояснения:
jQuery.get(expoptions.url,
params,
function(data)
{
expobj.html(data);
expobj.find("tr th.sortable").click(function(){
if($(this).hasClass('sortedasc')){
expoptions.order = "-" + $(this).attr('id');}
if($(this).hasClass('sorteddesc')){
expoptions.order = $(this).attr('id');}
if(!$(this).hasClass('sorteddesc') && !$(this).hasClass('sortedasc')) {
expoptions.order = $(this).attr('id');}
expoptions.find_page_for_resource = 0;
expobj.explorerGrid(expoptions);
});
expobj.find("#gridpage").change(function(){
expoptions.page = 1;
expoptions.per_page = $(this).val();
expobj.explorerGrid(expoptions);
});
);
Спасибо за любой ответ.