重新加载后,Jquery locater正在寻找错误的页面

时间:2011-06-22 11:38:10

标签: c# javascript jquery asp.net

我有以下几页: 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

更改此行为的正确语法是什么?

1 个答案:

答案 0 :(得分:0)

像那样追加。

$("#RSSfeed<%=TabControlID %>", window.top.document).append(html);

我还添加window.top.document告诉他们搜索热​​门文档,而不是搜索rss.aspx

http://api.jquery.com/append/

通过在前面添加$,您实际上搜索要添加它们的元素,只需将其删除即可添加html变量中存在的代码。