Php 为什么我的JS功能在动态地向页面添加内容后不起作用?
我有一个javascript函数,它是在我的网页的开头定义的。在我的表中单击一行时调用它 以下是我的功能: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脚本很可能没有将类添加到表行中。
$(".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'));
});