我想通过使用jQuery将选择转换为ul li,但由于某些原因它将无法正常工作。点击Worlds
按钮时,将显示一个列表。每次有人从列表中选择一个项目时,会在项目上显示绿色叠加层(请参阅下图)。ul li的jQuery问题
以下是问题:当您多次选择项目时,绿色叠加显示在所有项目上,如下所示。它只应该显示一次点击每个项目,就好像我正在打开/关闭它。
预期的结果:http://jsfiddle.net/Starx/a6NJk/2/
$("#worldBtn").on("click", function() {
$('#displayWorlds').toggle();
});
var allOptions = $("#worlds-dropdown li");
$("ul").on("click", "li", function() {
console.log("clicked");
allOptions.removeClass('selected');
$(this).addClass('selected');
$("ul").children('#displayWorlds').html($(this).html());
allOptions.toggle();
});
$("#worldsClose").click(function (a) {
$('#displayWorlds').toggle();
a.preventDefault();
});
.selected {
background-color: rgba(16, 246, 136, 0.47);
color: white;
}
li {
padding: 8px 16px;
border-radius: 6px;
line-height: 1.429;
-webkit-transition: .25s;
transition: .25s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button id="worldBtn" type="button" class="btn btn-purple">Worlds <i class="fa fa-globe"></i></button>
<div class="bitblobs-panel bitblobs-side-panel bitblobs-worlds-panel" id="displayWorlds" style="display: none;">
<ul class="worlds-dropdown custom-scrollbar" id="worldsClose">
<li onclick="setserver('server.localhost:551');">
<div class="worlds-text">Option 1</div>
</li>
<li onclick="setserver('server.localhost:551');">
<div class="worlds-text">Option 2</div>
</li>
哪里是'displayWorlds'在您的HTML标记? – neophyte
我不好,我忘了给HTML标记添加一行。请刷新 – AndroidGL