Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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
为自动完成加载数据时,jQuery悬停不起作用_Jquery_Hover - Fatal编程技术网

为自动完成加载数据时,jQuery悬停不起作用

为自动完成加载数据时,jQuery悬停不起作用,jquery,hover,Jquery,Hover,此代码不起作用: $("ul.lst li").hover(function (event) { $('#span').text($(this).index()); }); 当使用相同的代码和硬编码html时,鼠标悬停在上面可以平滑工作,并给出悬停的li索引。 我错过了什么 var记录=[]; var selectedIndex=null; var selectedRecord=null; var=[]; var autocomplete=函数事件,el{ var搜索=el.v

此代码不起作用:

$("ul.lst li").hover(function (event) {   
    $('#span').text($(this).index());
});
当使用相同的代码和硬编码html时,鼠标悬停在上面可以平滑工作,并给出悬停的li索引。 我错过了什么

var记录=[]; var selectedIndex=null; var selectedRecord=null; var=[]; var autocomplete=函数事件,el{ var搜索=el.value; 如果event.key==箭头向下{ ifrecords==null返回;//如果没有结果 如果records.length>0&&selectedIndex==null{ selectedIndex=0; } 如果records.length>0,则为else&&selectedIndex0&&selectedIndex==null{ selectedIndex=0; } 如果records.length>0,则为else&&selectedIndex>0{ 选择指数-; } 更改所选类别索引; } 否则,如果event.key==输入{ } 否则{ selectedIndex=null; selectedRecord=null; if records.length==0{ $获得'https://jsonplaceholder.typicode.com/comments' .donefunction数据{ 记录=数据; //按名称排序 巫术记录; 显示自动完成记录、搜索; }; } 否则{ 显示自动完成记录、搜索; } } } var showAutoComplete=函数数据,搜索{ search=search.toUpperCase; fRecords=[]; $.eachdata,函数k,v{ 如果v.name.toUpperCase.startsWithsearch{ fRecords.pushv; 如果FRE.length>9 返回false; } }; $ul.lst.empty; 如果fRecords.length>0 $ul.lst.addClasssuggest; 其他的 $ul.lst.removeClasssuggest; $.eachfRecords,函数键,值{ $ul.lst.append+value.name+; }; } var sort=函数记录{ records.sortfunction a,b{ var nameA=a.name.toUpperCase;//忽略大小写 var nameB=b.name.toUpperCase;//忽略大小写 如果nameAnameB{return 1;} //名字必须相等 返回0; }; } var changeClass=函数索引{ selectedRecord=记录[selectedIndex]; $ul.lst>li.active.removeClassactive; 如果选择了索引!=null{ $$ul.lst>li[selectedIndex].addClassactive; $'company.val$$ul.lst>li[selectedIndex].text; } } $'company'.keyupfunction{autocompleteevent,this;}; $'company'。函数{ $ul.lst.removeClasssuggest; } //$ul.autocomplete li.hover函数事件{ //调试器; //selectedIndex=$this.index; //更改所选类别索引; //console.logselectedIndex; //}; $ul.lst li.hoverfunction事件{ $'span'.text$this.index; }; ul.lst{ 显示:无; } 建议{ 显示:块; } ul.lst李{ 列表样式:无; 填充:7px 12px; 边框:1个实心bbb; 空白:nowrap; 溢出:隐藏; } ul.lst>li.active{ 背景色:ffcc66; 颜色:000; z指数:1000; } 键入自动完成的内容
可能是因为事件是在加载元素之前调用的。您应该等待文档加载后再添加事件,如下所示:

$(function() {
  $("ul.lst li").hover(function (event) {   
     $('#span').text($(this).index());
  });
});
$ul.lst li.hover仅将悬停事件处理程序添加到调用它时存在的元素中

要使其应用于所有元素,即使是后来添加的元素,请使用on,如下所示:

$("ul.lst").on('mouseover', 'li', function (event) { {   
    $('#span').text($(this).index());
});
在选择器中,您在此处指定脚本调用时存在的父元素,即ul.lst,然后,作为第二个参数,您在其中指定其他选择器li。它将在任何时候对ul.lst中添加的任何li起作用。

实际上,您不能像这样绑定悬停事件。你必须使用鼠标器或鼠标盖。原因如下: