Когда я удаляю параметр «ajax» из функции .queue()
, мои вызовы ajax попадают в очередь. Единственная проблема заключается в том, что в документах jQuery говорится, что функция .queue()
по умолчанию станет очередью 'fx' К сожалению, я уже использую эту очередь (для эффектов) и хочу использовать другую очередь специально для пользовательских функций. К сожалению, код внутри функции .queue()
никогда не вызывается. У меня есть пример моего кода ниже (просто небольшой фрагмент). Это становится немного сложнее, если у вас есть дополнительные вопросы, не стесняйтесь комментировать.
$(document).ready(function(event) {
var target = event.target;
var ajaxify = new Ajaxify();
$.each(ajaxify.functions, function(index, value){
if ($(target).hasClass(value)) {
console.log('this is in my console, and nowhere else in my code');
$('#main').queue('customfunctions', function (next) {
var self = this;
ajaxify[value](target, event, next, self);
});
}
});
$('#main').dequeue('customfunctions');
});
function Ajaxify() {
this.functions = [
'ajaxify_overlay',
'ajaxify_overlayCancel',
'ajaxify_overlaySubmit',
'ajaxify_rollout',
'ajaxify_rolloutCancel',
'ajaxify_rolloutSubmit',
'ajaxify_upload',
'ajaxify_contentArea',
'ajaxify_itemToggler',
'ajaxify_closer',
'ajaxify_submit',
'ajaxify_inputActivate',
'ajaxify_executeAndRefresh',
'ajaxify_empty' //no comma on the last entry!!!!
];
}
Ajaxify.prototype.ajaxify_executeAndRefresh = function (target, event, next, self) {
event.preventDefault();
var newPath = getVar($(target).attr('class'), 'url'); //getVar function not included, it will get the new path for the ajax call below
var url = $(target).attr('href');
$.ajax({
type: "POST",
url: url,
success: function(transport) {
refreshPage(newPath); //refreshPage function not included, it will do a page refresh with the new path
next();
}
});
}