我目前正在爲我的PYBOSSA項目構建一個自定義任務展示器。我幾乎實現了它,但我被困在下面的JavaScript函數 -Pybossa JS - taskLoaded()函數在執行1個任務時執行兩次
pybossa.taskLoaded(function(task, deferred) {
if (!$.isEmptyObject(task)) {
console.log("Hello from taskLoaded");
// load image from flickr
var img = $('<img />');
img.load(function() {
// continue as soon as the image is loaded
deferred.resolve(task);
pybossaNotify("", false, "loading");
});
img.attr('src', task.info.url).css('height', 460);
img.addClass('img-thumbnail');
task.info.image = img;
console.log("Task ##"+task.id);
}
else {
deferred.resolve(task);
}
});
按照文檔 -
的pybossa.taskLoaded方法將負責添加新項目的JSON任務對象並在數據加載完成後解析延遲對象(即,當圖像已經下載時),因此可以預先加載當前用戶的另一個任務。
但是請注意,我的功能。我記錄了任務ID,功能加載。它加載2個任務。登錄後,控制檯顯示 -
Task ##256
Task ##257
此外,我曾嘗試過各種其他語句。他們也執行兩次。我認爲,如果現在我嘗試插入當前任務的問題,下一個任務的功能也將與其各自的圖像一起放入。我該如何解決這個問題?
但是我的每一個任務可以是圖像,視頻或音頻。每個任務可以有不同數量的問題。現在我打算用JS動態地將問題膨脹爲HTML。問題是兩個任務圖像都在膨脹。所以如果task1有3個問題,任務2有3個問題,Pybossa會將所有6個加載到DOM中。我如何確定哪些任務要膨脹,哪些不需要? – 97amarnathk
正如我所說的,您需要添加一個div,span,任何你想要的dom,將自己標識爲圖像,視頻和相關任務的問題的容器。就如此容易。然後你顯示/隱藏你所需要的。 –
我明白了。但是,我如何確定哪些元素屬於當前任務,哪些屬於下一個。 – 97amarnathk