我有一個父div元素,並且裏面有一個子div元素。現在有一個子div的點擊處理程序,它帶來了一個下拉菜單(如菜單)。Javascript - 使整個div可以被識別
要求 - 也是在父div的點擊上帶下拉。
注意 - 點擊父div,並觸發childdiv.click()將無法正常工作,無限循環。
無法執行停止傳播,使下拉式功能無法正常工作。
我有一個父div元素,並且裏面有一個子div元素。現在有一個子div的點擊處理程序,它帶來了一個下拉菜單(如菜單)。Javascript - 使整個div可以被識別
要求 - 也是在父div的點擊上帶下拉。
注意 - 點擊父div,並觸發childdiv.click()將無法正常工作,無限循環。
無法執行停止傳播,使下拉式功能無法正常工作。
$(document).ready(function(){
$("#child").click(function(){
$("ul").slideUp();
})
$("#parent").click(function(){
$("#child").trigger("click");
})
})
#parent {
padding: 50px;
background: red;
}
#child {
height: 50px;
background: green;
color: white;
}
li {
background: rgba(0,0,255,0.3);
border: 2px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="parent">Parent
<div id="child">
Child
<ul id="menu" class="hide">
<li>menu1</li>
<li>menu2</li>
</ul>
</div>
</div>
上面的代碼不起作用!它進入一個循環。家長點擊,這觸發孩子點擊,然後點擊泡沫到父母,再次孩子和無限循環。 – user3763367 2014-09-23 05:06:04
試試這個添加父onclick事件處理程序,然後使用event.stopPropagation阻止事件冒泡。
$("#child").click(function(e){
e.stopPropagation();
$("ul").slideToggle();
});
$("#parent").click(function(e){
$("#child").trigger("click");
});
CHECK FIDDLE這是你想要的嗎?不確定接下來要做什麼。添加你的代碼會更容易。
謝謝,它在jsfiddle中工作正常,但相同的代碼在w3school編輯器中不起作用。你能告訴我爲什麼嗎?並且您的代碼按需要工作。 – user3763367 2014-09-23 05:42:43
歡迎@ user3763367,我不確定W3school的編輯。但你有沒有在你的代碼中試過它?如果它幫助你可以接受答案。 – VPK 2014-09-23 05:49:43
不幸的是,停止傳播停止執行功能。功能不像我們的示例代碼那樣簡單。沒有停止傳播的替代解決方案將工作我猜。 – user3763367 2014-09-23 06:24:10
請分享您的代碼。這將有所幫助。 – Shamanth 2014-09-23 04:39:47