2016-12-23 69 views
0

我在另一個div中有一個div。 這兩個div都有一個ondrop屬性。 當我移動孩子的dropzone中的元素時,它會調用ondrop函數兩次。一次爲孩子,然後一次爲父母。onrop影響目標的父母

我的問題是:即使放置目標位於另一個放置目標容器中,我也不希望容器受到放置元素的影響。換句話說,我不希望ondrop事件被激發兩次。

你能幫我嗎?

感謝, 斯特凡

+1

你能分享一些你的代碼? HTML/JavaScript的?你使用香草的JavaScript? jQuery的?其他一些圖書館? – Dekel

+0

如果您不向我們顯示您的代碼 –

回答

1

可以例如停止事件傳播

event.stopPropagation(); 

這將停止將drop事件傳播到父元素。

P.S.有些代碼不會傷害。

1

如果你正在使用jQuery - 你應該使用greedy選項droppable對象:

$("#draggable").draggable(); 
 
$("#droppable").droppable({ 
 
    greedy: true, 
 
    drop: function(e) { 
 
    alert("dropped inner"); 
 
    } 
 
}); 
 
$("#droppable-big").droppable({ 
 
    greedy: true, 
 
    drop: function(e) { 
 
    alert("dropped"); 
 
    } 
 
});
#draggable { 
 
    width: 50px; 
 
    height: 50px; 
 
    background: #ccc; 
 
} 
 
#droppable-big { 
 
    width: 120px; 
 
    height: 120px; 
 
    background: red; 
 
    color: #fff; 
 
    padding: 60px; 
 
} 
 
#droppable { 
 
    width: 75px; 
 
    height: 75px; 
 
    background: #999; 
 
    color: #fff; 
 
    padding: 10px; 
 
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css"> 
 
<script src="//code.jquery.com/jquery-1.12.4.js"></script> 
 
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 
 
<div id="draggable">Drag me</div> 
 
<div id="droppable-big"> 
 
    <div id="droppable">Drop here</div> 
 
</div>

+0

不知道該貪婪屬性,我們不能幫助您。謝謝 ! –