列表项li父节点上的Javascript事件处理程序
我是javascript新手,我想创建一个事件onclick来列出项目。问题是我想为li标签创建一个事件,但当我单击下一个ul标签时,它会一直启动 下面是我的部分代码:列表项li父节点上的Javascript事件处理程序,javascript,html,css,list,html-lists,Javascript,Html,Css,List,Html Lists,我是javascript新手,我想创建一个事件onclick来列出项目。问题是我想为li标签创建一个事件,但当我单击下一个ul标签时,它会一直启动 下面是我的部分代码: <li id="1660761" class="HTMLFirstLevel HTMLHorizontalArrowDown"> <ul id="ul1223945" class="HTMLItem"> <li id="1490659" class="HTMLRemainingL
<li id="1660761" class="HTMLFirstLevel HTMLHorizontalArrowDown">
<ul id="ul1223945" class="HTMLItem">
<li id="1490659" class="HTMLRemainingLevels"></li>
<li id="483463" class="HTMLRemainingLevels"></li>
<li id="80919" class="HTMLRemainingLevels"></li>
<li id="1280053" class="HTMLRemainingLevels"></li>
<li id="1799353" class="HTMLRemainingLevels"></li>
<li id="1882209" class="HTMLRemainingLevels"></li>
<li id="462917" class="HTMLRemainingLevels"></li>
</ul>
</li>
<li id= ......>
<ul....>
<ul...>
</li>
现在,我只希望它在id为1660761的项目li上启动,而不是在列表中的项目上启动。
列表是一个导入的组件,我不能在html中创建事件,这就是为什么我要用javascript在外部访问它
现在,我通过按标记名扫描div,然后添加一个“click”事件侦听器(如果内容等于我正在搜索的标记内部html),来实现这一点。 我留下了html的其余部分,这对本文很重要:
<div id="MainMenu" class="HTMLMenuContainer HTMLMenuHorizontal">
<ul id="ul1351387" class="HTMLMenu">
<li id="1660761" class="HTMLFirstLevel HTMLHorizontalArrowDown">
<a href="#">
<span>Back Office</span>
</a>
<ul id="ul1172716" class="HTMLItem">
<li id="1490659" class="HTMLRemainingLevels">
<a href="#">
<span>
Some submenu Here
</span>
</a>
</li>
.....
-
-
.....
以及守则:
var divs = document.getElementsByClassName('HTMLMenuHorizontal');
var span = divs[0].getElementsByTagName('span');
//I iterate till 19 cause its more than all the spans in the page.
for(var i=0; i<20; i++) {
var sp= span[i];
if(sp.innerHTML==('Back Office')){
sp.addEventListener("click",function back(){
//do something here like
alert('Back Office');
});
}
}
var divs=document.getElementsByClassName('HTMLMenuHorizontal');
var span=divs[0]。getElementsByTagName('span');
//我迭代到19,因为它超过了页面中的所有跨度。
对于(var i=0;i请查看本页以正确理解:
函数(e-->)是什么
我希望它能有所帮助。下面是我针对这个问题的jQuery代码:
$(function(){
$("li.1660761").live("click", onListItemLink);
}
function onListItemLink(){
alert('Hello World!');
}
这是针对JavaScript的:
var parentNode = document.getElementById('1660761');
parentNode.onclick = onListItemLink;
function onListItemLink(){
alert('Hello World!');
}
尝试以下代码:此示例使用jquery插件感谢大家提供的帮助。我用不同的方法解决了这个问题。我不是按id获取元素,而是按标记名扫描div,直到找到我要查找的内容,然后添加一个“单击”事件侦听器,如果内容等于我正在搜索的标记内部html。
var parentNode = document.getElementById('1660761');
parentNode.onclick = onListItemLink;
function onListItemLink(){
alert('Hello World!');
}
$('#1660761').unbind('click').click(function(e) {
if (e.target !== this) return;
alert('Hey There!');
});