Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Удаление div (https://javascript.ru/forum/events/67961-udalenie-div.html)

Vlad9119 17.03.2017 14:31

Удаление div
 
Доброго времени суток!
Стояла задача: при клике на любое место документа создаются кружочки рандомного цвета. При повторном клике кружочек удаляется. Реализовать удалось, но метод remove почему то не удаляет элемент, а просто чистит его. Как следствие дом-дерево разрастается до бесконечности. Помогите решить проблему. (метод delet выдает ошибку)
Спасибо.

<!DOCTYPE html PUBLIC >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script type="text/javascript" src="jquery.min.js"></script>

    <script type="text/javascript">
	$(document).ready(function() {		

	$(document).click(function(e){
		var X = e.pageX; 
		var Y = e.pageY; 
		var tar = e.target			
					
		var div = document.createElement('div')
		document.body.appendChild(div);
		$(div).addClass("myClass");
		
		if ( $(tar).hasClass("myClass") ) {
		tar.remove();

		} else{	
		var col =	('#' + ((Math.random() * 0x1000000) | 0x1000000).toString(16).substr(1));
			//console.log(col)
		$(div).css("background-color", col )
				.css("position", "absolute" )
				.css("width", "50px" )
				.css("height", "50px" )
				.css("border-radius", "25px" )
				.css("left", X - 30)
				.css("top", Y - 30);
		}
		})
	});
    </script>


</head>
 <body>
<p style = "color: #848484">При клике на документ создается элемент случайного цвета. 
При повторном клике элемент удаляется</p>
<!-- <div></div> -->
</body>
</html>

рони 17.03.2017 14:51

создание div в месте клика
 
Vlad9119,
<!DOCTYPE html PUBLIC >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

    <script type="text/javascript">
 $(function() {
    $(document).click(function(e) {
        var X = e.pageX;
        var Y = e.pageY;
        var tar = e.target;
        if ($(tar).hasClass("myClass")) return;
        var col = "#" + (Math.random() * 16777216 | 16777216).toString(16).substr(1);
        var div = $("<div/>", {
            "class": "myClass",
            css: {
                "background-color": col,
                "position": "absolute",
                "width": "50px",
                "height": "50px",
                "border-radius": "25px",
                "left": X - 30,
                "top": Y - 30
            },
            on: {
                "click": function() {
                    div.remove()
                }
            }
        }).appendTo("body")
    })
});
    </script>


</head>
 <body>
<p style = "color: #848484">При клике на документ создается элемент случайного цвета.
При повторном клике элемент удаляется</p>
<!-- <div></div> -->
</body>
</html>

Vlad9119 17.03.2017 15:12

AAAAA!!! СПАСИБО!


Часовой пояс GMT +3, время: 11:15.