2014-10-03 78 views
0

我有兩個div在另一個內。 Child div溢出。確定當子div發生溢出時點擊是否在div的邊界內

<div id="dv1"> 
    <p> hello world</p> 
    <div class="child1">Inner Div</div> 
</div> 

http://jsfiddle.net/Sq7hg/629/

是否有可能找出是否我父div的綠色邊框內單擊,包括孩子的div是邊框內的部分?

+0

...但不包括未被孩子覆蓋的父元素部分? – isherwood 2014-10-03 01:04:27

+0

@isherwood否,所有Parent Div(黃色區域)包括綠色邊框內由兒童覆蓋的部分(紅色)。排除綠色邊框外部的孩子部分。 – aVC 2014-10-03 01:20:26

+0

在這種情況下,我不清楚爲什麼你可以在父div上做點擊事件。 – isherwood 2014-10-03 13:14:35

回答

0

爲了便於閱讀,我拿出了一些代碼。

在任何情況下,如果「測試」失敗,您可以返回或使其採取不同的行爲。

這裏是它在行動:http://jsbin.com/qerud/10/edit

$(function() { 


    function validateClick (elem,e){ 
     /*Gets clicked position inside the element */ 
     var posX = e.pageX - elem.position().left, 
      posY = e.pageY - elem.position().top; 

     /* Compares click to the size of the element */ 
     var elemWidth = elem.width(); 
     elemHeight = elem.height(); 

     if(elemWidth > posX && elemHeight > posY){ 
      return true; 
     } 
      return false; 

    }; 


    $("#dv1").mousedown(function(e) { 
     $(this).css('background-color','yellow'); 
     if(!validateClick($(this),e)){ 
      return $(this).css('background-color','blue'); 
     } 

    }); 

});

+0

我實際上正在反思,我不確定是否需要邊界邏輯......如果你覺得這個有用,我會回頭看看它。 – 2014-10-03 01:31:10

+0

很酷。謝謝,你是對的。邊界邏輯並不重要。有用! :) – aVC 2014-10-03 02:02:56

+0

酷我編輯的答案不包括它。祝你好運! – 2014-10-03 02:29:03