编辑
所以每个人都非常清楚,这个表是在我查询我的数据库之后创建的,然后接受查询,运行while循环并为我的表充气。 AKA动态地以编程方式动态创建它,但是您想要标记它。此表在html中不存在,并且在查询之前不存在。所以我开始时没有解释这个问题。我在评论中确实提到过,但我应该更清楚。
我有一个类的图像,当我点击它时,我希望它提醒我Job#下的值,但什么也没发生。我创造了一个小提琴演示,小提琴完美地运作。我不明白发生了什么。
继承人jsFiddle。
这是实际的代码
php生成表
echo "<table class='projects_contentTable'>";
echo "<th class='content_th'>" . "" . "</th>";
echo "<th class='content_th'>" . "" . "</th>";
echo "<th class='content_th'>" . "Job #" . "</th>";
echo "<tr>";
echo "<td class='content_td'>" . "<img src='images/edit.png' class='edit_project_record'/>" . "</td>";
echo "<td class='content_td'>" . "<img src='images/view.png' class='view_project_record'/>" . "</td>";
echo "<td class='content_td'>" . "<a href='#'>" . "16" . "</a>" . "</td>";
echo "</tr>";
echo "</table>";
的jQuery
$('.view_project_record').click(function() {
var project_id = $('.projects_contentTable td:nth-child(3) a').text();
alert(project_id);
});
现在我意识到在小提琴中我使用段落标签来模拟图像。所以我想也许,这就是原因,可能是愚蠢的。所以我尝试将代码更改为此,只是为了确定。
echo "<td class='content_td'>" . "<p class='edit_project_record'>" . "<img src='images/edit.png'/>" . "</p>" . "</td>";
echo "<td class='content_td'>" . "<p class='view_project_record'>" . "<img src='images/view.png'/>" . "</p>" . "</td>";
单击图像时仍然不会触发。我知道点击功能适用于图片,因为我有另一个点击功能,点击jQuery
功能。为什么这个不起作用?关于我不知道的表中的图像是否有规则?
答案 0 :(得分:3)
将您的事件处理程序包装在文档就绪函数中:
$(document).ready(function(){
$('.view_project_record').click(function() {
var project_id = $('.projects_contentTable td:nth-child(3) a').text();
alert(project_id);
});
});
它适用于小提琴,因为你设置了小提琴来运行你的代码onload
,但你的实际代码似乎缺少文档就绪的包装器,因此很可能该元素在尝试时不存在附加点击事件。
答案 1 :(得分:1)
将内容包装到$(window).load
或$(document).ready
$(window).load(function () {
$('.view_project_record').click(function () {
var project_id = $('.projects_contentTable td:nth-child(3) a').text();
alert(project_id);
});
});
或
$(document).ready(function(){
$('.view_project_record').click(function() {
var project_id = $('.projects_contentTable td:nth-child(3) a').text();
alert(project_id);
});
});