【发布时间】:2019-05-16 19:11:47
【问题描述】:
我无法将我的点击事件组合在一起,因为它们似乎可以被压缩,我仍然无法弄清楚如何正确组织它
我的 JS
$(".container").hide();
$("#welcome").show();
//for phone add an on click event for .dropdown, and pust display:show for .dropdown-content
$(".dropdown").click(function() {
$(".dropdown-content").toggle();
});
// add click event for .dropdown-content
//click for #wel
$("#wel").click(function() {
$(".container").hide();
show: $("#welcome").show();
});
// if #me clicked hide: $(".container").hide();, main page we'll implement later, and show: $("#aboutMe").show();
$("#me").click(function() {
$(".container").hide();
show: $("#aboutMe").show();
});
// else if #port clicked hide: $(".container").hide();, main page we'll implement later, and show: $("#portfolio").show();
$("#port").click(function() {
$(".container").hide();
show: $("#portfolio").show();
});
//else if youtube clicked
$("#yubby").click(function() {
$(".container").hide();
show: $("#tubez").show();
});
// else if #contact clicked hide: $(".container").hide();, main page we'll implement later, and show: $("#contact").show();
$("#contact").click(function() {
$(".container").hide();
show: $("#cont").show();
});
我的html
<nav class="dropdown">
<p class="animated pulse" id="pimp"> Juan Alberto Pimentel JR
</p>
<div class="dropdown-content">
<p class="dropAns" id="wel">Welcome</p>
<p class="dropAns" id="me">About Me</p>
<p class="dropAns" id="port">Portfolio</p>
<p class="dropAns" id="yubby">Youtube</p>
<p class="dropAns" id="contact">Contact</p>
</div>
</nav>
<br>
<div class="container" id="welcome"></div>
<br>
<div class="container" id="aboutMe"></div>
<br>
<div class="container" id="portfolio"></div>
<br>
<div class="container" id="tubez"></div>
<br>
<div class="container" id="cont"></div>
每次我在下拉菜单中进行选择时,我希望它显示该选择的特定容器,而不需要在我的 js 中包含所有这些代码行
【问题讨论】:
-
我建议event delegation,有一个处理程序和一个被点击元素的id和要显示的元素的id之间的映射。写一个完整的答案超出了 SO 的范围。你必须尝试一些东西,然后如果你不能让它工作,我们可以告诉你任何问题。
-
我不确定事件委托在此处的相关性。你介意澄清一下吗?
标签: javascript jquery html object onclick