在這裏,我已經實現了表格單元格的拖放功能,它可以正常拖放操作,但是無法顯示任何預防消息或在下拉元素上顯示任何預防性消息,如果已經有一個元素,意味着在某些細胞我有一個<span></span>
標記,這只是拖放和其他細胞是空的意味着沒有<span></span>
標記,並拖動和下降<span></span>
在任何其他沒有<span></span>
的空單元格,我的HTML是波紋管 This is the Output Snapp
如何防止在特定地點/區域拖放拖動項目?
<table border="1" class="display nowrap dataTable dtr-inline" id="example">
<thead>
<tr><th>Column Header</th><th>Head1</th><th>Head2</th<th>Head3</th><th>Head4</th><th>Head5</th></tr>
</thead>
<tbody>
<tr>
<td class="name" id="1_undefined">Head1</td><td class="alertShow" id="1_0"></td><td class="alertShow" id="1_1"></td><td class="alertShow" id="1_2"></td><td class="alertShow" id="1_3"></td><td class="alertShow" id="1_4"></td>
</tr>
<tr>
<td class="name" id="2_10">Head2</td><td class="alertShow" id="2_1"></td><td class="displaydata"><span id="id_2_2" class="booked" draggable="true"></span></td><td class="alertShow" id="2_3"></td><td class="alertShow"><span id="id_2_4" class="booked" draggable="true"></span></td>
</tr>
<tr>
<td class="name" id="3_10">Room3</td><td class="alertShow" id="3_0"></td><td class="alertShow" id="3_1"></td><td class="alertShow" id="3_2"></td><td class="alertShow" id="3_3"></td><td class="alertShow" id="3_4"></td>
</tr>
</tbody>
</table>
,這是我的腳本代碼此代碼不允許下降重複元素,而是想表明一些preventon消息,我不能夠做到這一點
$('.booked').on("dragstart", function (event) {
$(this).closest('td').removeClass("displaydata")
$(this).closest('td').addClass("alertShow")
var dt = event.originalEvent.dataTransfer;
dt.setData('Text', $(this).attr('id'));
});
$('table td').on("dragenter dragover drop", function (event) {
event.preventDefault();
if (event.type === 'drop') {
var data = event.originalEvent.dataTransfer.getData('Text',$(this).attr('id'));
if($(this).find('span').length===0){
var de=$('#'+data).detach();
de.appendTo($(this));
$(this).closest('td').removeClass("alertShow");
$(this).closest('td').addClass("booked");
}
};
});
其實我忘了在問題menstion該代碼是不是讓如果元素已經存在,那麼放下那個元素,我想要做的只是顯示一些消息或者光標上的黑色圓圈,如果我們試圖將事件放在錯誤的目的地上 – sharepoint2013
然後你可以使用一些通知/警報你的if block是什麼問題 –
我嘗試了一些方法,但沒有人工作,像檢查班,比較Id的,但沒有奏效 我試過類似 if($(this).closest('td ').hasClass(「預訂」)) { alert(「您不能在此刪除此元素。」); } else {(this).closest('td')。removeClass(「alertShow」); $(this).closest('td')。addClass(「booked」); } – sharepoint2013