所以我的 jQuery 加载了一个页面,其中包含一些 Mako 代码,这些代码加载了 Python 吐出的内容。
我的问题是我需要将 Mako 代码生成的文本捕获到 jQuery 变量中,但是在页面完全加载之前,jQuery 中没有捕获任何内容。
您将如何在 jQuery 中编写代码来做某事或等到页面完全加载?我尝试使用$('#inbox_conversation').html()
内部,$(document).ready(function () {
但它只是返回undefined
。
Mako模板代码
<p id="inbox_conversation">
%if inbox_details.body:
${inbox_details.body}
%endif
</p>
jQuery:在主类中
var navigateToInboxDetails = function(messageID) {
WHOAT.networking.redirectToURL("#!"+inboxDetailsURL(messageID));
};
var combined_message = $('#inbox_conversation').html();
alert('combined_message = '+combined_message);
// ^ Returns nothing because it runs before HTML is loaded
jQuery:在网络类中
//redirect to another page... as the name suggests
var redirectToURL = function (url) {
window.location = url;
};
Ajax 流程:
jQuery: in Main Class和jQuery: in Networking Class部分中的代码在 this ajax 之后被激活
在我的wireInbox 函数中:
var loadInbox = function() {
loadResource(inboxURL(), null, function() {
wireInbox();
wireTableHighlighting();
});
};
加载资源函数
var loadResource = function(url, params, callback) {
WHOAT.networking.getToServerWithAjax(url, params, function (response) {
//var $content = $($.parseHTML(response.trim()));
var $content = $($.parseHTML($.trim(response)));
var $container = $('#dashboard-display');
var $content_to_hide = $container.children();
$.when($content_to_hide.fadeOut('fast')).then(function () {
$content.hide();
$container.append($content);
$content.fadeIn('fast', function(){
$content_to_hide.remove();
if(callback) {
callback();
}
});
});
});
注意:如果我放置 $('#inbox_conversation').html(); 在按钮操作上,它会提醒我需要获取的内容。所以我知道问题是我的页面还没有完成渲染问题。
我试图做的是从 P 标签内获取文本,然后将其拆分并将其一部分放入另一个 div 中。你将如何做到这一点?