我有兩個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是邊框內的部分?
我有兩個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是邊框內的部分?
爲了便於閱讀,我拿出了一些代碼。
在任何情況下,如果「測試」失敗,您可以返回或使其採取不同的行爲。
這裏是它在行動: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');
}
});
});
我實際上正在反思,我不確定是否需要邊界邏輯......如果你覺得這個有用,我會回頭看看它。 – 2014-10-03 01:31:10
很酷。謝謝,你是對的。邊界邏輯並不重要。有用! :) – aVC 2014-10-03 02:02:56
酷我編輯的答案不包括它。祝你好運! – 2014-10-03 02:29:03
...但不包括未被孩子覆蓋的父元素部分? – isherwood 2014-10-03 01:04:27
@isherwood否,所有Parent Div(黃色區域)包括綠色邊框內由兒童覆蓋的部分(紅色)。排除綠色邊框外部的孩子部分。 – aVC 2014-10-03 01:20:26
在這種情況下,我不清楚爲什麼你可以在父div上做點擊事件。 – isherwood 2014-10-03 13:14:35