Php 为什么我的JS功能在动态地向页面添加内容后不起作用?

Php 为什么我的JS功能在动态地向页面添加内容后不起作用?,php,javascript,html,Php,Javascript,Html,我有一个javascript函数,它是在我的网页的开头定义的。在我的表中单击一行时调用它 以下是我的功能: $(".info").click(function(){ alert($(this).attr('movieid')); }); 以下是我的表格行的外观: <tr class="info" movieid="123"><td>movie title</td></tr> php脚本很可能没有将类添加到表行中。

我有一个javascript函数,它是在我的网页的开头定义的。在我的表中单击一行时调用它

以下是我的功能:

    $(".info").click(function(){
        alert($(this).attr('movieid'));
    });
以下是我的表格行的外观:

<tr class="info" movieid="123"><td>movie title</td></tr>

php脚本很可能没有将类添加到表行中。更改它以添加该类。

您必须执行以下操作:

$("body").on("click", "tr", function(event){
    alert($(this).attr('movieid'));
});

通过添加一个“容器”,它将产生类似于
.live()

使用jqueryready事件的效果

$(document).ready(function() {    
    $(".info").on("click", "tr", function(event){
       alert($(this).attr('movieid'));
   });
});

您正在动态添加元素,因此在设置单击处理程序时不会注册该元素

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

body
通常有效,但理想情况下,您希望DOM元素尽可能靠近选择器
.info

感谢大家的帮助。我能想出来@jasen提到您需要将其声明为body标签。以下是我能够使用的解决方案:

$("body").on("click", ".info", function(event){
   alert($(this).attr('movieid'));
});

谢谢你,德里克。。您为将来提供了一些有用的示例。

文档中添加
.on
因为您正在向文档中添加
DOM

示例

$(document).on('click',".info",function(){
       alert($(this).attr('movieid'));
});

首先,指定一个选择器,所有
tr.info
节点现在和将来都将包含在该选择器中。从你最新编辑的文章来看,我相信那是
表#电影

然后用
打开的
附加事件,并指定子选择器
tr.info

$('table#movies')。在('click','tr.info',函数(){
警报($(this.attr('movie'));
});

参见

上的示例您是否使用AJAX获取内容..我使用AJAX函数获取内容我更新了我的问题以包含搜索函数OK然后在api上使用jquery。。正如所有人在ans中建议的那样..我已将该类添加到表行。。它的输出与以前一样感谢您的帮助,但是当我添加“table”部分时,该行没有单击About j query,就像这个版本在j query 1.7中被弃用并被删除:1.9我认为您不需要
.ready
,因为新元素是在加载DOM之后加载的。
$(document).on('click',".info",function(){
       alert($(this).attr('movieid'));
});