我正在加载HTML内容并将其附加到DIV。当然,问题在于HTML没有绑定。
由于我没有点击任何内容,我无法使用jQuery.live
或jQuery.bind
(我认为)。
这是我的代码。
// Load directory content and display list
function loadDirContent(current_path,new_dir)
{
// Load new content in browser window
jQuery.ajax({
type: "POST",
url: "../wp-content/plugins/wp-filebrowser/fileBrowser.php",
dataType: 'html',
data: {current_path: current_path, new_dir: new_dir},
success: function(html){
jQuery("#fileBrowser").html(html); // Append new content
}
});
}
如何绑定这个新的HTML以便我可以在添加的内容上运行jQuery?
当我使用Ajax上传插件时,我遇到了问题。它从表单中获取数据,但任何$ _POST数据都留空。只有在使用我的loadDirContent函数“页面重新加载”后才会发生这种情况。
更新
我的表单中有以下输入:
relative_url; ?>“/>
每次我在文件浏览器中关闭一个目录时,current_path
都会更新。
Ajax File Upload Plugin调用uploader.php
函数。在uploader.php里面我有以下命令:$this->current_path = $_POST['current_path'];
问题是$_POST['current_path']
为空。
答案 0 :(得分:1)
$()。live和$()。delegate将处理除click之外的事件。你绑定处理程序的是什么事件?
此外,如果live / delegate确实不起作用,您总是可以在成功回调中绑定处理程序。
示例:
// function for doing event binding:
function bindHandlers(root) {
// do any event binding here, only selecting elements within the provided root
$('.something', root).click(...);
$('.something-else', root).hover(..., ...);
};
// bind all children of the document on dom ready
$(function() { bindHandlers(document); });
// Load directory content and display list
function loadDirContent(current_path,new_dir)
{
// Load new content in browser window
jQuery.ajax({
type: "POST",
url: "../wp-content/plugins/wp-filebrowser/fileBrowser.php",
dataType: 'html',
data: {current_path: current_path, new_dir: new_dir},
success: function(html){
// append the new stuff and attach handlers
bindHandlers($('#fileBrowser').html(html));
}
});
}
答案 1 :(得分:0)
您可能想查看我收到的解决方案in my recent, similar question。两者都是很好的答案(我标记了帮助我的那个)。从你正在做的事情来看,你可能希望在添加内容后为内容重新分配处理程序。