我有以下几页: Default.aspx的 窗口小部件/ rss.aspx
使用以下代码加载default.aspx时,rss.aspx会动态加载到div中:
$.get('/Widgets/rss.aspx', { TabControlID : 385}, function(data) {
$('#drbox385').html(data);
});
这没有问题。
rss.aspx中的代码:
<input type="submit" value="Save" />
<div id="RSSfeed<%=TabControlID %>">
<script type="text/javascript">
var gurl = "http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q=<%=MyUrl%>&num=<%=MyCount %>";
$.getJSON(gurl, function (data) {
var feeds = data.responseData.feed;
if (!feeds) {
$("#RSSfeed<%=TabControlID %>").append('There was an error loading this feed.');
}
else
{
for (var i = 0; i < feeds.entries.length; i++) {
var entry = feeds.entries[i];
var title = entry.title;
var link = entry.link;
var description = entry.contentSnippet;
var html = "<div class='stippel'><img height='10' width='10' src='/images/rss10.png' style='margin-right:2px;'><a target='_blank' href='" + link + "' class='feed_item_link' title='" + description + "'>" + title + "</a></div>";
// this line doesn't work after reload
$("#RSSfeed<%=TabControlID %>").append($(html));
// end of bug
}
}
})
</script>
单击“保存”按钮时,配置数据将发布到default.aspx上的不可见iframe iframe生成以下代码以使用新配置重新加载窗口小部件:
$(document).ready(function(){
var str;
str = "<div style='text-align:center'><img src='/images/loading.gif' width='32' heigth='32'/></div>";
$(parent.document).find('#drbox385').html(str);
$.get('/Widgets/rss.aspx', { TabControlID : 385}, function(data) {
$(parent.document).find('#drbox385').html(data);
});
});
数据被加载回页面,但rss.aspx中的这行代码不起作用:
$("#RSSfeed<%=TabControlID %>").append($(html));
Jquery在rss.aspx中寻找ID#RSSfeed385而不是default.aspx
更改此行为的正确语法是什么?
答案 0 :(得分:0)
像那样追加。
$("#RSSfeed<%=TabControlID %>", window.top.document).append(html);
我还添加window.top.document
告诉他们搜索热门文档,而不是搜索rss.aspx
通过在前面添加$,您实际上搜索要添加它们的元素,只需将其删除即可添加html变量中存在的代码。