我正在将jQuery 1.10和JQM 1.4用于移动网络应用。对于用户语言系统,我使用轻量级框架nirus/HTMLed框架,该框架在文档就绪时初始化。
但是,我在jQuery弹出窗口中动态加载html文件(当它们触发时)。显然,HTMLed已经执行,不会替换(翻译)新添加的html中嵌入的标签。
任何静态html中的示例标签或动态添加的html:
<h1>label.page</h1>
用英文文本替换的示例JSON:
{"label.page" : "Hello World"}
是否有其他(javascript)方法可以在不刷新的情况下替换动态添加的标签?
除此之外,很好的框架和谢谢!
我让作者知道这篇文章。
编辑:
下面是一些额外的代码,以了解我打算做什么。
首先是HTML弹出窗口(多用途):
<!-- Popup -->
<div data-role="popup" id="popup-wrapper" class="ui-content">
<div id="popup-container"></div>
</div>
我使用Hammer库进行多种手势:
Hammer('#someDiv').on("tap", function(event) {
$('#popupContainer').load('someHTMLfile.html'); // Child div of the popup to load dynamic content
$('#popupWrapper').popup("open", { transition: "pop" }); // the jQuery Popup opens
});
通过jQuery Mobile事件,我摆脱了#popupContainer中所有加载的html内容:
$('#popupWrapper').bind({
popupafterclose: function(event, ui) {
$(popupContainer).children().detach(); // clean up the #popupContainer to default
}
});
顺便说一下,您的示例代码确实与jQuery事件(第三个块代码)一起使用,但没有使用Hammer事件(第二个块代码)。希望这能澄清这个问题。
编辑:
忘记添加示例html内容...
<div class="title">United States</div>
<div class="subtitle">Introduction</div>
<div class="mainContent">The United States of America (USA), commonly referred to as the United States (U.S.), America, or simply the States</div>
<div class="title">China</div>
<div class="subtitle">Population</div>
<div class="mainContent">1,351 billion (2012)</div>
<!-- etc. -->
答案 0 :(得分:0)
在这里:http://jsfiddle.net/P5xf7/10/
注意:您必须在<h1>
标记中添加ID。如果您可以为我们提供更多代码,那么我们可能会给您一个jQuery选择器来获取<h1>
,而无需为其添加ID。您还需要删除点“。”在label.page
之间。
来自小提琴的代码如下......
<h1 id="myHeader">Lorem ipsum dolor sit amet.</h1>
<script>
function loadHtmlIntoJqueryPopup(jsonString)
{
alert('About the change the header text...');
//jsonString holds your: {"labelpage" : "Hello World"}
//do whatever you do to load the html content into the window
//turn the json into a js object
var myObj = jQuery.parseJSON( jsonString );
jQuery("#myHeader").text(myObj.labelpage);
}
loadHtmlIntoJqueryPopup('{"labelpage":"Hello World"}');
</script>
答案 1 :(得分:0)
根据您的建议添加了新功能。检查GitHub上的最新示例项目