Jquery不适用于由AJAX调用的HTML标签

Jquery doesn't work on HTML tags which via called by AJAX

本文关键字:HTML 标签 调用 AJAX 不适用 适用于 Jquery      更新时间:2023-09-26

我有一个无序列表

<ul id="showlist"></ul>

如果用户调用 ajax 函数,则会填充列表项,例如

<ul>
    <li>a</li>
    <li>b</li>
    <li>c</li>
    <li>d</li> 
</ul>

我的问题在那之后就开始了。 我在我的页面的 AND 上有一个 <script> 标签。 它说当按下向下按钮时,使<ul>的第一个孩子变成蓝色。 但它什么也没做

<script>
$(body).keydown(function(e) {
    if(e.keyCode == 40){
        $("#showlist:first-child").attr("style","background-color:blue");       
    }
})
</script>

该如何解决我的问题?

使用 $('body') 而不是 $(body)

您的选择器也有问题:

$("#showlist li:first-child")

工作示例:http://jsfiddle.net/hF6LF/

另外,您在帖子中提到此脚本位于页面末尾。如果你的脑袋中有脚本,你需要等待 dom 准备好body元素存在。将处理程序绑定到document可能更安全, 将永远存在。

使用 .on jquery 方法

$(body).on("keydown", function(e) {
   .....
});

Jquery .on((

Yo 必须使用 on 事件侦听器,它可以处理尚未创建的后代元素上的事件。

请参阅 https://api.jquery.com/on/

例如,如下所示的内容。

$(document).on( "keydown", "body", function() {
  alert( $( this ).text() );
});