z-index javascript css问题

时间:2013-04-22 09:09:59

标签: javascript jquery css

我在页面上动态创建了可以通过jquery拖放的div。

我在每个div上添加了一个小按钮,允许用户通过单击删除div。

我遇到的问题是,我将突出显示的div设置为页面上最重要的项目但是如果div与另一个div重叠并且用户单击删除按钮,则下面的div被高亮显示并被带到前面而不是点击按钮。

我已将按钮放在div内,但位置似乎没有任何效果。该按钮被添加到div。

我假设它与按钮的z-index有关,但我可能完全在错误的轨道上

任何帮助将不胜感激。

这是我用来将按钮附加到div的代码。在create div函数循环中创建div之后调用此代码。

  var but=document.createElement('input');
  but.setAttribute('type','button');
  but.setAttribute('class','removebutton');
  but.style.position = "absolute";
  but.style.top = "15px";
  but.style.left = +width+"px";
  but.style.float="right";
  but.style.visibility="hidden";

  but.onclick=function(){
    if(confirm('Really delete?'))
      {                   
       $.post("delete_box.php",{i:i, page_ref:'<? echo $page_ref; ?>', template_ref:'<? echo $template_ref; ?>'}, function(data,status){ });    
    document.getElementById("frmMain").removeChild(newdiv);
    document.getElementById(id).removeChild(but);
    document.getElementById(id).removeChild(newbr);

      }             
   }

这是我用来将点击的div带到前面并推回其他任何内容的代码(每个div的类名称为dragbox

   $('.dragbox').click(function() 
      { 
         $(".removebutton").css('visibility', 'hidden');
         $(this).css({  
        'background-image':'url(img/move.png)',
        'background-repeat':'no-repeat',
        'width':'15px',
        'height':'15px',
        'zIndex':'1000'
        })
        $(this).find(".removebutton").css('visibility', 'visible');

  });   



$('.dragbox').focusout(function() {   
    $(this).css({
                   'border', '0px',
           'background-color', 'transparent',
           'width', '0px',
           'z-index', '0'
        })      
      });   

1 个答案:

答案 0 :(得分:1)

我认为您需要停止按钮上的click事件的传播。

当用户点击该按钮时,点击事件将被传递(也称为bubbeling)到点击位置的所有底层元素。

but.onclick = function(e){
    e.stopPropagation(); // stop the propagation of the click event to other elements

    // ... your code             
}