Управление модулями (Ajax)
Доброго времени суток. Столкнулся с проблемой.. В общем есть некое веб приложение весь его функционал разбит на модули подгружаемые через ajax. У каждого модуля есть класс module и атрибут data-module-url.. Это все работает, хорошо. Но понадобилось реализовать некое управления модулями, например удалить какой то модуль, добавить новый на страницу и т.д.
Пробовал делать это как то вот так:
function addmodule(id) {
$('body').append('<div>id = "'+ id +'"</div>');
}
function removemodule(id) {
$('.module[data-module-url='+ id +']').trigger('removeEvent');
}
function removeallmodule() {
$('.module').trigger('removeallEvent');
}
$('body').delegate('.module', 'removeEvent', function() {
$(this).remove();
});
removemodule('user/singin');
в результате ошибка: Код:
Uncaught Error: Syntax error, unrecognized expression: .module[data-module-url=user/singin] |
Цитата:
$('.module[data-module-url="'+ id +'"]')
|
Ошибка убралась, но и remove не применился
|
artapp,
как устроены ваши модули можно только гадать |
Первоначальная загрузка модулей:
var documenturl = 'http://127.0.0.1/';
$('.load_module').each(function(){
var $module = $(this).closest('.module');
$.ajax({
url: documenturl + $module.data('module-url') + "/",
success:function(result){
$module.html(result);
$(this).remove();
}
});
});
... <div data-module-url="user/signup" class="module"> <div class="load_module"></div> </div> <div data-module-url="user/signin" class="module"> <div class="load_module"></div> </div> ...Сам php выдает куски html, формы, таблицы и т.д. Вот так они устроены. Теперь необходимо добавить возможность управления этими модулями. Удаление, добавление новых, удаление всех. |
artapp,
может вы удаляите то чего ещё нет на странице? |
<div data-module-url="user/signup" class="module"> <div class="load_module"></div> </div>подгружается сразу при открытии сайта, вызов функции remove происходит по кнопке |
function addmodule(id) {
$('.col-center').append('<div class="module" data-module-url="'+id+'"><div class="load_module"></div><div class="module_load"></div></div>');
$('.col-center').find('.load_module').each(function() {
var $module = $(this).closest('.module');
$module.find('.module_load').show();
$.ajax({
url: documenturl + $module.data('module-url') + "/",
success:function(result){
$module.html(result);
$(this).remove();
$module.find('.module_load').hide();
}
});
});
}
function addmodules(id) {
for (i=0;i<20;i++) {
addmodule(id+'/'+i);
}
}
function removemodule(id) {
$('.col-center').find('.module[data-module-url="'+id+'"]').remove();
}
function removeallmodule() {
$('.col-center').find('.module').remove();
}
В общем всё оказалось проще.. Только иногда подлагивает при добавление модуля. Можно как то оптимизировать? |
| Часовой пояс GMT +3, время: 02:30. |