[英]target a <li> so that you can click
我目前正在开发程序。 它包括一个3选项导航栏。 它使用<li>
并且没有ID,当我尝试向其添加ID时,它弄乱了顺序,甚至单击时也无法工作! 我开始对此失去信心..有人可以帮我吗,
我的目标是让它在不同的点击次数上发出不同的警报,因此我可以链接不同的html页面,
小提琴使用这里 。
<ul class="ui-module menu-selector" id="menu-selector">
<li>Home</li>
<li class="js-is-active">Notif's</li>
<li>Profile</li>
</ul>
由于您没有ID,因此我认为childNodes
属性会有所帮助。
例如,您可以使用:
var lis = document.getElementById('menu-selector').childNodes;
// or you can select lis directly...
// var lis = document.querySelectorAll('#menu-selector li');
Array.prototype.slice.call(lis)
.forEach(function(li) {
// do something... like
li.onclick = function () {
console.log(this);
}
});
注意: childNodes
(或querySelectorAll
返回)是NodeList类型,我使用Array.prototype.slice.call()
以便在其上使用forEach()
方法。
有关更多详细信息,请参见childNodes 。
如果由于某种原因您不想在li元素上使用id,则可以使用以下逻辑来选择活动的li
:
$("#menu-selector li.active").on("click", function(){ alert($(this).text()) });
我为您添加了ID,不知道它搞乱了顺序是什么意思。
的HTML
<div class="ui-items">
<header class="ui-module app-header">VoiceBox <a href="#" class="app-header__btn app-header__btn--friends"><i class="entypo-user-add"></i></a>
<a href="#" class="app-header__btn app-header__btn--edit"><i class="entypo-pencil"></i></a>
</header>
<div id="outer">
<ul class="ui-module menu-selector" id="menu-selector">
<li id="home_li">Home</li>
<li id="notif_li" class="js-is-active">Notif's</li>
<li id="profile_li">Profile</li>
</ul>
</div>
</div>
Java脚本
var listItem = $('#menu-selector > li');
$(listItem).click(function() {
$(listItem).removeClass('js-is-active');
$(this).toggleClass('js-is-active');
});
$('#home_li').click(function(){
alert('home clicked')
})
$('#notif_li').click(function(){
alert('notifs clicked')
})
$('#profile_li').click(function(){
alert('profile clicked')
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.