我有兩個DIV標籤。 1)綠色是外部Div標籤,其onclick屬性設置爲alert('點擊')。 2)黃色是內部DIV標記
現在,當我點擊內部div標記時,會彈出一個警報。從內部div標籤中選擇項目時重複相同。我無法選擇內部的div標籤。這怎麼解決?
此外,我將嵌套動態生成的div標籤。我卡在這裏
我有兩個DIV標籤。 1)綠色是外部Div標籤,其onclick屬性設置爲alert('點擊')。 2)黃色是內部DIV標記
現在,當我點擊內部div標記時,會彈出一個警報。從內部div標籤中選擇項目時重複相同。我無法選擇內部的div標籤。這怎麼解決?
此外,我將嵌套動態生成的div標籤。我卡在這裏
您需要防止點擊傳播到外部div。
很抱歉的轉貼,但答案已經位於: event.preventDefault() vs. return false
您所提供的鏈接是相關的,但我不認爲這完全回答了這個問題。 –
檢查了這一點。你可以申請ID,並使用這些ID來控制onclick。
<html><head></head>
<body>
<script type="text/javascript">
function manualToggle(val)
{
alert(val.id);
}
</script>
<div id="test" onclick="manualToggle(this);">
<span>Allowed to click</span>
<span onclick="event.cancelBubble=true;if (event.stopPropagation) event.stopPropagation();">Not allowed to click</span>
<span>Allowed to click</span>
</div>
</body>
</html>
一種解決辦法是設置一個事件偵聽器,您outer
容器,當監聽器被觸發,只有你已經驗證點擊沒有任何容器的孩子的起源(在這種情況下,後採取行動,inner
)。你可以調整這個解決方案只能由類,ID等排除特定的兒童:
$(document).ready(function() {
var outer = $('.outer');
outer.on('click', handleOuterClick);
function handleOuterClick(e) {
//Assert that the click originated from the outer div, and not from
//any of its children
var origin = e.target,
children = outer.children();
if(children.index($(origin)) == -1) {
//Proceed by displaying an alert
alert("You clicked the outer div!");
}
};
});
這裏的小提琴:http://jsfiddle.net/39ssk/
發佈您的代碼將讓我們更容易理解你的問題 – 131