Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   как вызвать функцию? (https://javascript.ru/forum/jquery/4866-kak-vyzvat-funkciyu.html)

pumpurumer 25.08.2009 20:49

как вызвать функцию?
 
Собсвенно есть ingrid (http://www.reconstrukt.com/ingrid/), все бы ничего, только хочется вызвать метод reload текушей страницы из своей функции.
те на табличку оно вешается так:
Код:

$(document).ready(
        function() {
            $("#table1").ingrid({
                url: 'GetData.aspx',
                height: 350
            });
        }
);

в коде (http://www.reconstrukt.com/ingrid/sr...uery.ingrid.js) есть определение интересной мне функции:
Код:

......
    // create methods on our grid object
    g.extend({
        load: function(params, cb) {
            var data = jQuery.extend(cfg.extraParams, params);

            /*
...

как-то так оно вызвается из кода ingrid
Код:

...
    g.load();
....

хотелось бы ее вызвать со своей странички, только незнаю как. в принципе вопрос концептуальный по жаваскрипту в принцепе.

pumpurumer 25.08.2009 23:37

поставил кастылек, добавил кнопку обновить
file jquery.ingrid.js:
Код:

....
pageInputClass: 'grid-page-input',
pageNextClass: 'grid-page-next',
+pageReloadClass: 'grid-page-reload', // сами думаю этот css додумайте
pageEndClass: 'grid-page-end',
pageLoadingClass: 'grid-page-loading',
.....
  }
});
} else {
    pinfo.html('Page ' + pinfo.html());
}
+var pb6 = jQuery('<a href="#">&gt;</a>').addClass(cfg.pageReloadClass).click(function(){
+ p.setPage(p.getPage());
+});
-p.append(pb1).append(pb2).append(pform).append(pb3).append(pb4).append(pload).append(pv).append(pb6);
+p.append(pb1).append(pb2).append(pform).append(pb3).append(pb4).append(pload).append(pv);

у себя:
Код:

function refreshCurPage()
{
        var vs =document.getElementsByClassName('grid-page-reload'); // ишем нашу кнопку
        vs[0].click(); // нажимаем на нее
}

в принцепе работает, мб кто-то предложит что-то более адекватное. ато как-то некрасиво из кода на кнопку нажимать :)

e1f 27.08.2009 19:39

Кошмар :) Реализация данного грида такая -- поданный jq-объект екстендится свойством "g", которое и содержит в себе ссылку на методы грида. Значит, все что нужно - это запомнить ссылку на грид в какую-то глобальную переменную (не хотите глобальную переденную -- используйте DOM или jQuery.data):
var myGrid;
$(function() {
    myGrid = $("#table1").ingrid({
        url: 'GetData.aspx',
        height: 350
    });
});
// где-то дальше в коде: хотим сделать grid reload:
myGrid.g.load();


Часовой пояс GMT +3, время: 10:19.