javascript - jQuery 动态点击

标签 javascript jquery

我正在尝试通过这种方式向行添加动态点击,

function addStudent(data) {
    var row = $('#students').append('<tr itemId="' + data.ID + '" ></tr>');
    row.on("click", function () {
        console.log(data.ID);  // THIS IS JUST FOR TESTING
        //loadStudent(data);
    });
}

为什么在控制台中我只点击一行就得到了所有的 ID?

问题?

在这个例子中,我在控制台中点击任何一行我得到了所有数据或学生 ID。

编辑

请注意此处的 data.ID 示例,如您所见,我在将完整对象传递给另一个方法的地方注释掉了真实代码。

最佳答案

将点击事件附加到 <tr> ,你需要这样写:

$('<tr itemId="' + data.ID + '" ></tr>').appendTo('#students').on("click", function () {
        console.log(data.ID);
        //loadStudent(data);
    });

这将创建 <tr>将其附加到 #students然后将点击事件附加到新创建的 <tr>

如果你想给事件传递数据,你可以这样做:

$('<tr itemId="' + data.ID + '" ></tr>').appendTo('#students').on("click", { value: data }, function () {            
        var theData = event.data.value;
        console.log(theData.ID);
        //loadStudent(theData);
    });

有关此概念的更多信息,请参阅 here .

关于javascript - jQuery 动态点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30706494/

相关文章:

javascript - d3js 弧高补间

javascript - 谷歌地图物化选项卡下的 map

javascript - JQuery 与 php 显示 div 元素

javascript - js点击按钮返回值的方法

javascript - 如何实现这种CSS效果

javascript - 如何将 href 回显到可编辑 div

javascript - 非常简单,非常流畅,JavaScript 跑马灯

javascript - Kendo UI 网格自定义过滤器 UI

jquery相同的ajax调用kill

jquery - Twitter Bootstrap 比较密码验证