Jquery定位器在重新加载后查找错误的页面
本文关键字:查找 错误 加载 定位器 新加载 Jquery | 更新日期: 2023-09-27 18:00:05
我有以下页面:default.aspxwidgets/rss.aspx
rss.aspx在加载default.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
改变这种行为的正确语法是什么?
这样进行追加。
$("#RSSfeed<%=TabControlID %>", window.top.document).append(html);
我还添加了window.top.document
,告诉他们在顶部文档中搜索,而不是在rss.aspx 中搜索
http://api.jquery.com/append/
通过在前面添加$,您实际上可以搜索元素来添加它们,只需删除它即可添加html变量中存在的代码。