/ / Il valore viene impostato solo quando si utilizza alert () - jquery-ui, jquery-post, jquery

Il valore viene impostato solo quando si utilizza alert () - jquery-ui, jquery-post, jquery

Quindi ho il codice qui sotto. Holder1 / Holder2 sono lì solo per vedere se l'impostazione dei valori su una variabile funziona

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);
}
);
}

Tuttavia il valore dell'iframe non è pubblicato. Tuttavia, invece di usare holder1 / holder2, se dovessi usare il seguente invece, tutto funziona

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

Ovviamente non voglio avvisarlo ogni volta, quindi mi chiedevo cosa stava succedendo?

Ho praticamente implementato un cruscotto dovele persone possono aggiungere widget e quindi spostarli verso l'alto o verso il basso. Ce n'è uno per impostazione predefinita. Se aggiungo un altro (diventa il secondo) e poi lo sposto nella prima posizione, esso fornisce un valore vuoto. Se lo rimando in seconda, funziona.

[MODIFICARE]

In effetti, se solo lo uso alert(""); allora funziona bene !!!

risposte:

0 per risposta № 1

Penso che il problema è che tu usi "questo" nella richiesta Ajax. prova a salvarlo su una variabile prima e usarlo

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);
}
);
}

0 per risposta № 2

Ho subito posticipato un ritardo stop: function(event, ui) { di 1 secondo che sembra risolverlo