When you clik on add new
button, jQuery inserts new dragrable DIVs
to the CONTAINER
. When I click on some of this DIVs
, I want to change z-index
value. But jQuery can't get z-index value as a number. It shows just 'auto'
... Is there solution to show true z-index value and increase it by 1
?
jsFiddle Example - http://jsfiddle.net/ynternet/84nVQ/10/
HTML
<div id="add" style="background:yellow; width:100px;"> add new </div>
<div id="container"> </div>
jQuery
function handler() {
if ($(this).find("#menu").length) {
return;
}
var currentIndex = $(this).css('z-index');
alert(currentIndex);
var newIndex = currentIndex + 1;
alert(newIndex);
$(this).css('z-index', newIndex);
}
$("#add").on({
click: function(e) {
var timestamp = Date.now();
var posx = Math.floor(Math.random() * 400);
var posy = Math.floor(Math.random() * 400);
$('#container').append(function() {
return $('<div class="add_to_this" id="' + timestamp + '" style="left:' + posx + 'px; top:' + posy + 'px; ">Click me, drag a change z-index</div>').click(handler).draggable({
containment: "#container",
scroll: false,
cursor: 'lock'
});
});
}
});
CSS
#container {
width:500px;
height:500px;
background: palegoldenrod;
position: relative;
top:20px;
left: 100px;
padding: 0px;
}
.add_to_this {
padding:5px;
background:yellowgreen;
position: absolute;
display:inline-block;
width:200px;
height:50px;
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
user-select: none;
-o-user-select: none;
}
Two problems in your code :
z-index
to start with because you didn't set it, so you have'auto'
z-index
as string because you don't parse itWhat you need to do :
z-index
:z-index:100;
z-index
:var currentIndex = parseInt($(this).css('z-index'), 10);
DEMONSTRATION (without the alerts as they were annoying)