仅在使用alert()时设置值

时间:2012-09-17 10:27:12

标签: jquery-ui jquery-post jquery

所以我有下面的代码。 Holder1 / Holder2就在那里,看看是否将值设置为变量

jQuery.each(substr, function() {
 if ($('div#'+this+' div.widgetcontent iframe').attr("src")!=undefined) {
    //alert('Widget iFrame: '+$('div#'+this+' div.widgetcontent iframe').attr("src"));
    //alert('Report URL: '+$('div#'+this+' div.widgetcontent iframe').contents().find('iframe').attr("src"));
    var holder1 = 'Widget iFrame: '+$('div#'+this+' div.widgetcontent iframe').attr("src");
    var holder2 = 'Report URL: '+$('div#'+this+' div.widgetcontent iframe').contents().find('iframe').attr("src");
    $.post("functions/process.asp", 
    { 
        widget: $('div#'+this+' div.widgetcontent iframe').attr("src"), 
        iframe: $('div#'+this+' div.widgetcontent iframe').contents().find('iframe').attr("src")
    } 
    , function(data) {
    alert("Data Loaded: " + data);
     }
);
}

但是iframe值未发布。但是,如果我使用以下代码而不是使用holder1 / holder2,那么一切正常

alert('Widget iFrame: '+$('div#'+this+' div.widgetcontent iframe').attr("src"));
alert('Report URL: '+$('div#'+this+' div.widgetcontent iframe').contents().find('iframe').attr("src"));

显然我不希望每次都提醒它,所以想知道发生了什么事?

我基本上实现了一个仪表板,人们可以在其中添加小部件,然后上下移动它们。默认情况下有一个。如果我添加另一个(变成第二个)然后将其移动到第一个位置,它会给出一个空白值。如果我将它移回第二个,它就可以了。

[编辑]

事实上,如果我只使用alert('');那么它就可以正常工作!!!

2 个答案:

答案 0 :(得分:0)

我认为,问题是你在ajax-request中使用“this”。尝试将它保存到变量之前并使用它

jQuery.each(substr, function() {
var myobject=this;
        if ($('div#'+myobject+' div.widgetcontent iframe').attr("src")!=undefined) {
            var holder1 = 'Widget iFrame: '+$('div#'+myobject+' div.widgetcontent iframe').attr("src");
            var holder2 = 'Report URL: '+$('div#'+myobject+' div.widgetcontent iframe').contents().find('iframe').attr("src");

            $.post("functions/process.asp", 
            { 
            widget: $('div#'+myobject+' div.widgetcontent iframe').attr("src"), 
            iframe: $('div#'+myobject+' div.widgetcontent iframe').contents().find('iframe').attr("src")
            } 
            , function(data) {
                alert("Data Loaded: " + data);
             }
             );
        }

答案 1 :(得分:0)

我在1秒的stop: function(event, ui) {之后直接延迟,似乎将它排序