单击函数不在图像jQuery上触发

时间:2013-08-02 15:58:00

标签: javascript jquery

编辑
所以每个人都非常清楚,这个表是在我查询我的数据库之后创建的,然后接受查询,运行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功能。为什么这个不起作用?关于我不知道的表中的图像是否有规则?

2 个答案:

答案 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);
    });
});