2
下面是一些HTML頁面Javascript代碼我工作:爲什麼jQuery.data不起作用?
var widgetsList = $("[widgetId]");
ToLogger("Init: " + widgetsList.length + " widgets found.");
for (var i=0; i<widgetsList.length; i++)
{
var widget = widgetsList[i];
var jqID = "#" + widget.id;
var refreshInterval = $(jqID).attr("refreshInterval");
if (refreshInterval == undefined)
refreshInterval = "30";
$(jqID).data("refreshCounter", "0");
var x = $(jqID).data("refreshCounter");
ToLogger(" = widget[ " + widget.id + " ].refreshCounter(init1) = " + x);
var widgetObj = $(jqID);
jQuery.data(widgetObj, "refreshCounter", "0");
x = jQuery.data(widgetObj, "refreshCounter");
ToLogger(" = widget[ " + widget.id + " ].refreshCounter(init2) = " + x);
}
但在日誌輸出我看到:
DashboardInit: 1 widgets found.
= widget[ Q.RecordCounters ].refreshInterval = 30
= widget[ Q.RecordCounters ].refreshCounter(init1) = undefined
= widget[ Q.RecordCounters ].refreshCounter(init2) = 0
爲什麼「$(jqID)。數據(「refreshCounter 「)'返回'undefined'? 一個月前正是這個JavaScript代碼工作正常!現在有什麼可能是錯誤的? 我已經用jQuery 1.7.2和1.8.1嘗試過了 - 工作方式相同。 難道是因爲瀏覽器更新? (火狐15.0)
下一個問題 - 甚至是jQuery.data(...)不定時工作功能:
var timerLock = false;
function OnTimer()
{
if (timerLock) return ;
timerLock = true;
for (var i=0; i<widgetsList.length; i++)
{
var widget = widgetsList[i];
var jqID = "#" + widget.id;
var widgetObj = $(jqID);
var x = jQuery.data(widgetObj, "refreshCounter");
var counter = parseInt(x);
ToLogger(" = widget[ " + widget.id + " ].refreshCounter = " + x + "/" + counter);
}
}
但在日誌輸出我看到:
= widget[ Q.RecordCounters ].refreshCounter = undefined/NaN
爲什麼'未定義'?如果.data(「refreshCounter」)被成功分配,那麼我認爲它不能是'未定義'。 您是否看到 - 可能會出現什麼問題?
你確定'$(jqID)'會返回一個元素嗎?你可以嘗試添加'.last()'來測試。 –
是的,當然我確定$(jqID)只返回一個元素。 – user1250823
這裏沒有冒犯,它可能是真正導致這種情況的問題。 –