2012-09-14 35 views
0

我有一个js文件(在页面标题中调用),其中包含一些运行在CMS的每个页面上的代码,名为admin.js。它包含一些用jQuery文件上传插件处理文件上传的代码。jQuery ajax范围和dom操作

我正在CMS中构建一个小部件系统。它使用引导模式。如果我将文件上载表单放在模式中,文件上传工作正常,但如果我使用模式中的ajax加载表单,文件上传插件不会触发。

的模式和Ajax代码是这样的:

$('#widget').on('show', function (event) { 
    var page_id = $('#widget').data('modal').options.page_id; 
    var widget_id = $('#widget').data('modal').options.widget_id; 
    $.ajax({ 
     url: ADMIN_INCLUDES_URL + 'widget/widget.php', 
     dataType: 'html', 
     type: 'POST', 
     async: false, 
     data: { 
      'page_id': page_id, 
      'widget_id': widget_id, 
      'action': 'form' 
     }, 
     success: function(r){ 
      $('#widget').html(r); 
     } 
    }); 
}); 

我不想复制的文件上传js代码。我正在使用.on(),我也尝试过.live()但都不工作?

+0

我们应该看到您的表单标记以及您的文件上传插件。 – moonwave99

+0

尝试将事件放置在某些父级上,如下所示: $('some_parent')。on('click','element',function(){}); –

+0

我试图把它放入小提琴中,但很难提取。 演示在这里:cms.bidibo.co.uk/admin 电子邮件:[email protected] 通:密码 转到页>编辑页面>点击一个widget –

回答

0

试试这个,你需要之前的任何ajax调用使用一个容器,它现在和动态元素绑定到

例如 - 这将现在点击事件。点击任何元素结合并在未来的是#widget的子女

$('#widget').on('click', '.click', function(){ console.log('clicked');});