Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
列表项li父节点上的Javascript事件处理程序_Javascript_Html_Css_List_Html Lists - Fatal编程技术网

列表项li父节点上的Javascript事件处理程序

列表项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

我是javascript新手,我想创建一个事件onclick来列出项目。问题是我想为li标签创建一个事件,但当我单击下一个ul标签时,它会一直启动

下面是我的部分代码:

<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!');
});