#javascript #jquery #promise #footable
#javascript #jquery ( jquery ) #обещаю #footable #jquery
Вопрос:
Я использую плагин запроса с именем FooTable для моей таблицы данных (http://fooplugins.github.io/FooTable /)
Ниже приведен мой код для инициализации моей таблицы данных…
jQuery(function($){
$('.table').footable({
"paging": { "size": 15 },
// "toggleColumn": "last",
"showToggle": false,
"columns": $.get('/footable/js/columns.json'),
"rows": $.get('/footable/js/rows.json')
})
})
Мой вопрос в том, как что-то сделать после завершения инициализации?
Я стараюсь
jQuery(function($){
$('.table').footable({
"paging": { "size": 15 },
// "toggleColumn": "last",
"showToggle": false,
"columns": $.get('/footable/js/columns.json'),
"rows": $.get('/footable/js/rows.json')
})
.done(function(){
alert('do something');
})
})
Но это не сработало.
Ответ №1:
Вы должны использовать postinit.ft.table
событие вместе с on
опцией, упомянутой @Roamer-1888. (Вы можете нажать на любую опцию, чтобы увидеть небольшой пример того, как ее использовать.)
jQuery(function($) {
$('.table').footable({
// your other options
'on': {
'postinit.ft.table': function(e, ft) {
/*
* e: The jQuery.Event object for the event.
* ft: The instance of the plugin raising the event.
*/
// all initialized - do stuff here
}
}
});
});
В качестве альтернативы второй аргумент конструктора плагина — это готовый обратный вызов, поэтому вы можете просто предоставить функцию для выполнения, как только все будет сделано.
jQuery(function($) {
$('.table').footable({
// your options
}, function(ft){
/*
* ft: The instance of the plugin raising the event.
*/
// all initialized - do stuff
});
});
Комментарии:
1. Я не смог заставить что-либо работать во всех этих ответах, за исключением последнего варианта здесь со вторым аргументом, для тех, кто еще хочет что-то делать после того, как все будет инициализировано, это то, что вы захотите.
2. Кроме того, есть
ready.ft.table
событие, полезное в этом случае.
Ответ №2:
используйте postinit.ft.table
событие. См . http://fooplugins.github.io/FooTable/docs/jsdocs/FooTable.html#.event:Table%22postinit.ft.table%22
Событие postinit.ft.table вызывается после инициализации любых компонентов, но до того, как таблица будет нарисована в первый раз. Вызов preventDefault для этого события отключит начальный отрисовку таблицы.
Кроме того, это то, postdraw.ft.table
что вы можете захотеть.
О том, как его использовать
Я не очень хорошо знаком с этим. Так что попробуйте. Если это не сработает, скажите мне.
.when('postinit.ft.table', function(e, ft){
//ok
})
Комментарии:
1. Как мне использовать это событие?
2. ответ @aBloomer изменен. посмотрите на это
3. Очень признателен.
Ответ №3:
За документацией FooTable сложно следить, поскольку она не перегружена примерами.
Я думаю, что предложение @turle использовать событие «postinit.ft.table» является хорошим, однако я не вижу, что .when('postinit.ft.table', function(e, ft){ /* do something */ })
это правильный синтаксис.
Насколько я могу судить отсюда, обработчики событий подключаются с помощью опции «вкл.».
Попробуйте :
jQuery(function($) {
$('.table').footable({
'paging': { 'size': 15 },
// "toggleColumn': "last",
'showToggle': false,
'columns': $.get('/footable/js/columns.json'),
'rows': $.get('/footable/js/rows.json'),
'on': {
'postinit.ft.table': function(e, ft) {
/*
* e: The jQuery.Event object for the event.
* ft: The instance of the plugin raising the event.
*/
// all initialized - do stuff here
}
}
});
});
Ответ №4:
Просто попробуйте ‘ready.ft.table’
Что-то вроде
jQuery(function($){
$('.table').footable({
"on": {
"ready.ft.table": function(e, ft){
// bind to the plugin initialize event to do something
}
}
});
});