とremove()
を使用して<div>
を削除しても動作しないようです。 $( '#div1')。removeAttr( 'style')。remove(); javascriptの最後の行で、<div>
がほんの一瞬しか表示されないはずですか? JavaScriptがイベント駆動型プログラミングかトップダウン型プログラミングかどうかはわかりません。または、コードに依存します。removeAttr()とremove()が機能しない
新しい<div>
をドラッグする前に、いつでも<div>
を削除して消去したいので、私はその行をどこにでも置こうとしますが、動作しません。
私はコンピュータサイエンスではありません、私の無知を許してください。しかし、最後の行がなぜ実行されないのか分かりません。 お手伝いできれば幸いです。どうもありがとうございました。
マイコード:
$(document).ready(function() {
var dragging = false;
var clickedX, clickedY;
// right click event
$("#displayWindow").mousedown(function(e) {
// when the mouse is pressed, the div is appended to the displayWindow
if (e.button == 2) {
// append the div start at the location that we click
$("#displayWindow").append("<div id='div1'></div>");
// get the coordinate where we clicked and set the div begin with that position
clickedX = e.pageX;
clickedY = e.pageY;
$('#div1').css({
top: clickedY,
left: clickedX
});
dragging = true;
return false;
}
});
// holding on the mouse button, change the size of the div
$("#displayWindow").on("mousemove", function(e) {
if (dragging) {
var mouseOnX = e.pageX;
var mouseOnY = e.pageY;
// allow user drag the selection box in 4 different direction
$('#div1').css({
top: Math.min(clickedY, mouseOnY),
left: Math.min(clickedX, mouseOnX),
height: Math.abs(mouseOnY - clickedY),
width: Math.abs(mouseOnX - clickedX)
});
}
}); // end on
$(document).on("mouseup", function(e) {
dragging = false;
});
// when clicked again, the menu fade out, and the div disappear
$(document).click(function(e) {
if (e.button == 0) {
// remove the selection box div
$('#div1').remove();
}
});
// prevent the default contextmenu on the display window
document.getElementById('displayWindow').oncontextmenu = function() {
return false;
};
}); // end ready
\t #displayWindow {
\t background-color: white;
\t border: 1px solid;
\t height: 600px;
\t width: 800px;
\t }
\t #div1 {
\t background-color: lightgreen;
\t position: absolute;
\t opacity: 0.3;
\t }
\t
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div id="displayWindow">
<svg height="130" width="150" style="position:absolute; left:200; top:200;" class="ui-widget-content">
<text fill="black" x=75 y=75 style="text-anchor: middle">1</text>
<path d="M38 0 L113 0 L150 65 L113 130 L38 130 L0 65 Z"/fill="none" stroke="blue">
</svg>
</div>
主要な問題...あなたはそれを削除した場合...それは永遠に失われますし、あなたのマウスイベントコードは、それを見つけることができません。また、要素全体を削除する場合は、実際にスタイルを削除する必要はありません。私はおそらくあなたが望むものは、要素が残るように 'empty()'であると思います。あなたの目標が何であるか、そしてこのUIがどのように働くことを期待するかを明確にはっきりさせないでください。 – charlietfl
あなたがしようとしていることを正確に理解できませんでした。あなたはdivをちょうど.hide()して、divクラスをセレクタとして使用して衝突を避けることができます – Eyal