簡體   English   中英

HTML 5 - Drag n Drop - 如果放置目標被完全占用,則不會觸發 ondragover 事件

[英]HTML 5 - Drag n Drop - ondragover event not triggered if the drop target is fully occupied

我有一個帶有左窗格和右窗格的容器。 您可以從左窗格拖動,然后放在右窗格中。 出於某種原因,如果放置目標已完全被占用,則不會觸發 html 5 ondragover 事件。 我的放置目標是一個 div,當 ondrop 事件發生時,我會在其中動態創建 iframe。 當我第一次從左側拖動某些東西並將其放到左側時,我能夠創建第一個 iframe。 但是現在第二次,如果我從左邊拖動一些東西並嘗試將它放到右邊,ondragover 不會被觸發(我放置斷點,它沒有被擊中),因為放置目標已經滿了我的第一個 iframe . 在 ondragover 偵聽器中,我想將現有 iframe 的高度降低一半,以便為創建新的 iframe 騰出空間。 但不幸的是,ondragover 並沒有被觸發。 有什么方法可以修改 ondragover 的行為,以便即使放置目標完全被占用它也會被觸發? 任何幫助將不勝感激。 所以,這是代碼..

function onDragOver(ev) {
 ev.preventDefault();
 if(iframes_count > 4)
 {
   return;
 }
 if (iframes_count == 2)
 {
    if ((getDivLeftCoordinate() < ev.pageX < getDroppableWidth()) && (getDivTopCoordinate() < ev.pageY < getDroppableHeight()/2))
    {
        var existingFrames = document.getElementsByTagName("iframe");
        for (var i = 0; i < existingFrames.length; i++)
        {
          $(this).attr("height" , 500);
        }
    }
 }
 $("#right_pane").css("background-color", "grey");
}

function onDrop(ev) {
 ev.preventDefault();

var data_id = ev.dataTransfer.getData("Text");
var data_id_selector= "#" + data_id;
var content_id = data_id + "content";
var content_id_selector = "#" + content_id;
var url = $(data_id_selector).data("url");
var iframe_width = 100 + "%";
var iframe_height = 100 + "%";


$(data_id_selector).remove();
$("<iframe />", {
class: "myFrame",
id : content_id,

}).appendTo('#right_pane');



$(content_id_selector).attr("height", iframe_height);
$(content_id_selector).attr("width", iframe_width);
$(content_id_selector).attr("src", url);
$(content_id_selector).attr("background-color", "white");
$("#right_pane").css("background-color", "white");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM