[英]Is there a way to loop through all jwplayer instances when the number is unknown?
[英]Best way to create an unknown number of JackUp instances
我們使用JackUp在Rails中上傳Ajax圖片。 我們選擇它是因為它承擔的范圍不大,而且重量很輕。
在它的示例代碼之后,我們想到了這樣的東西:
let jackUp = new JackUp.Processor({
path: '/images'
});
jackUp.on('upload:imageRenderReady', (e, options) => {
options.image.attr("data-id", options.file.__guid__).css({
border: "5px solid red"
});
$('[data-behavior=image-block-container]').prepend(options.image);
}).on("upload:sentToServer", (e, options) => {
$(`img[data-id='${options.file.__guid__}']`).css({
borderColor: 'yellow'
});
}).on("upload:success", (e, options) => {
$(`img[data-id='${options.file.__guid__}']`).css({
borderColor: "green"
});
}).on("upload:failure", (e, options) => {
alert(`'${options.file.name}' upload failed; please retry`);
$(`img[data-id='${options.file.__guid__}']`).remove();
});
$('.file-drop').jackUpDragAndDrop(jackUp);
$(document).bind('drop dragover', e => {
e.preventDefault();
});
使用一個圖像上傳按鈕(分類為file-drop
),可以按預期工作。 但是,頁面上這些圖像上載按鈕的數量將是未知的。
如果有一個以上的上傳按鈕,則每次添加文件時,它都會附加到所有image-block-container
元素中,而不只是目標對象。 似乎jackUp
沒有觸發它的元素的概念。
允許每個上傳按鈕知道它叫什么的最好方法是什么? 我嘗試將其放在.on('drop'...
塊中。這使我可以訪問該元素,但沒有觸發JackUp的事件。
感謝任何有關輕量級Rails友好ajax上傳gem的幫助或建議!
您正在使用以下查詢選擇器廣泛地匹配DOM的多個部分: $('[data-behavior=image-block-container]')
。 可能有多個與此選擇器匹配的元素是您怪異的更新問題的原因。
如果您只想定位用戶正在與之交互的元素,則upload:imageRenderReady
事件處理程序中的e
變量應該具有[target][1]
,通常這是用戶正在與之交互的內容,並且應該使您接近您想要的(取決於DOM的結構)。
從jQuery:
target屬性可以是為事件注冊的元素或其后代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.