Что-то не так в моем плагине jQuery.Я не могу опубликовать весь сценарий, потому что он будет слишком большим, это небольшой и измененный отрывок.В основном это работает следующим образом:
- Ajax-вызов, , если набор результатов пуст , затем сделайте резервную копию элемента и его содержимого (если резервная копия не определена) и переопределить его содержимое
- Если результирующий набор содержит данные, найдите в нем определенные элементы и используйте .html () для отображения данных
Но что-то не так ввыше.Когда вызов выполняется 3 раза подряд, дочерние элементы резервной копии печально пусты!
Любая помощь очень ценится.Вот упрощенная версия потока управления:
var backup = function() { this.data('backup', this.clone(true)); }
var onObjectProperty = function(obj) {
// This is where my script fail!!! 3 consecutive times of empty data,
// and children() contains no data!
if($.type(this.data('backup')) !== 'undefined')
console.log(this.data('backup').children());
};
if(!val.error && !val.count) // Not an error, but data is empty
{
// Keyword "this" is the current element in selection loop (on which
// the plugin was invoked)
if($.type(context.data('backup')) === 'undefined')
backup.call(this); // Backup if not already defined
opt.onEmpty.call(context); // Call the function to handle empty data
return true; // Skip the current iteration in the loop
}
// Here we have no errors and result set contains data
onObjectProperty.call(this, obj); // Pass the context and the data
EDIT: обнаружил ошибку, не клонировал резервную копию перед добавлением ее в DOM!