我有這樣的功能,每次當我點擊帶有影像的畫布 div 時,都會在我點擊的那個地方創建。
$(function () {
$("#the-canvas").click(function (e) {
x = e.pageX;
y = e.pageY;
var xMax = 2900;
var yMax = 2900;
var img = $('<img src="indeksiraj-1.png" alt="當變數為區域時如何制作洗掉功能" />');
window.divMark = document.createElement("div");
divMark.classList = `markers mark`;
$(divMark).css({
position: "absolute",
left: x "px",
top: y "px",
});
$(divMark).append(img);
$(marksCanvas).append(divMark);
counter ;
saveLocalPos(x);
saveLocalY(y);
var imgHeight = img.outerHeight();
if (y imgHeight > yMax) {
divMark.css("top", yMax - imgHeight);
}
var imgWidth = img.outerWidth();
if (x imgWidth > xMax) {
divMark.css("left", yMax - imgWidth);
}
});
這是我的洗掉功能
deleteBtn.onclick = function (e) {
divMark.remove();
};
這個功能的問題是,當我點擊洗掉按鈕時,它只洗掉一個 div,但我再次點擊它,那些不會再次洗掉。
uj5u.com熱心網友回復:
您的代碼僅保存對上次創建的 divMark 的參考。每次創建一個新視窗時,它都會用新視窗覆寫舊的 window.DivMark。當您按下洗掉按鈕時,它會訪問上次創建的 divMark,將其洗掉,并在隨后的呼叫中嘗試一次又一次地將其洗掉。相反,您需要創建一個陣列,并在每次創建陣列時向該陣列添加一個 divMark。然后每次按下洗掉按鈕時都需要從陣列中獲取一個 divMark,呼叫 remove() 并將其從陣列中洗掉
uj5u.com熱心網友回復:
每個 div 都有一個按鈕,還是有一個按鈕可以洗掉后進先出中的所有 div?
// at the top of the files
const divsList = [];
const newId = (function () { let id = 0; return () => id; })();
// where you create the div
const div = ... newdiv
const currentId = newId();
div.setAttribute("id", newId());
divsList.push(currentId);
// delete handler
deleteBtn.onclick = function (e) {
const currentId = divsList[divsList.length - 1];
if (currentId !== undefined) {
document.getElementById(currentId).delete();
divsList.slice(0, -1);
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/357756.html
標籤:javascript html 查询 css
上一篇:如何將true或false的值更改為文本值型別我正在檢查整個表中的行注意該表是資料表型別嗎?
下一篇:在組件加載之前更新背景關系狀態
