在动态元素上应用事件

jogesh_pi

我用Add New Item按钮在4行之后在表中生成了动态行

项目表

使用此代码:

$('#add_more').click(function(e){
        var TTR = $('#items_data tbody tr');
        var HTML = '<tr>\n\
                        <td>'+ (TTR.length + 1)+'</td>\n\
                        <td><input type="text" style="width:450px;" name="item_name[]" value="" /></td>\n\
                        <td><input type="text" style="width:50px;" name="item_qty[]" value="1" /></td>\n\
                        <td><input type="text" style="width:100px;" name="item_price[]" /></td>\n\
                        <td></td>\n\
                        <td>\n\
                            <a href="#add"><span class="fa fa-plus"></span></a>&nbsp;&nbsp;&nbsp;\n\
                            <a href="#del"><span class="fa fa-trash-o"></span></a>\n\
                        </td>\n\
                    </tr>';

        $(TTR.last()).after(HTML);
    });

因此,当我单击时,Add New Item代码将生成,Row 5但问题是动态行上的事件处理程序不起作用。

// This is working with Rest rows Not Dynamic
$('#items_data tr').on('keydown', 'td:eq(3) input', keyHandler);

但是,当我将其更改为适用于动态行时,则仅适用于单个第一行;

// This should works for dynamic rows as well but its 
// only work on the first row not the rest
$('#items_data').on('keydown', 'td:eq(3) input', keyHandler);
费利克斯·克林(Felix Kling)

我认为这不适:eq(3)用于委托事件处理程序,因为选择器用于检查给定元素是否匹配,而不是在一组元素中找到一个元素。

:eq通常用于将一组元素简化为特定元素,例如获取一组元素中的第四个元素。但是在这种情况下,没有从中获取元素的集合,或者说集合仅包含一个元素(触发事件的元素)。

使用其他选择器,例如input[name="item_price[]"]td:nth-child(4) input与之:nth-child相对:eq,之所以起作用,是因为它显式地表示“如果元素是其父元素的第n个子元素,则匹配”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在动态元素上应用事件

来自分类Dev

无法在innerHTML创建的元素中应用事件

来自分类Dev

动态元素并监听它们上的事件

来自分类Dev

动态添加元素上的click事件

来自分类Dev

动态绑定元素上的事件绑定

来自分类Dev

动态创建的元素上的 EACH 事件绑定

来自分类Dev

如何在动态添加的组件上使用事件发射器?

来自分类Dev

如何在由JavaScript动态生成的对象上使用事件处理程序

来自分类Dev

Java动态且干净地在多个按钮上使用事件处理程序

来自分类Dev

如何在动态生成的 vuejs 上使用事件处理程序

来自分类Dev

在流星模板中为新创建的元素重新应用事件侦听器

来自分类Dev

联合JS-如何在Shapes.devs上应用事件

来自分类Dev

在动态创建的元素上动态创建onclick事件

来自分类Dev

如果未连接到DOM,JS是否会使用事件侦听器删除经过动态创建的元素?

来自分类Dev

单击对话框中动态元素上的事件

来自分类Dev

jQuery Tooltip事件未在动态创建的元素上触发

来自分类Dev

动态添加的元素上的Hammer.js事件

来自分类Dev

侦听动态内容上的点击事件并确定父元素

来自分类Dev

jQuery Tooltip事件未在动态创建的元素上触发

来自分类Dev

动态生成元素上的jquery click事件

来自分类Dev

Cytoscape无法获得动态添加的元素上的click事件

来自分类Dev

jquery 监听动态创建的元素上的点击事件

来自分类Dev

如何在动态创建的元素上触发按键事件

来自分类Dev

无法在窗口调整大小上删除和应用事件处理程序。(在FireFox中不能在Chrome中使用)

来自分类Dev

jQuery:使用事件委托时,可以在所有选择器上应用操作吗?

来自分类Dev

jQuery动态调用事件监听器

来自分类Dev

jQuery动态调用事件侦听器

来自分类Dev

动态创建时多次调用事件处理程序

来自分类Dev

动态事件上的onchange事件

Related 相关文章

  1. 1

    在动态元素上应用事件

  2. 2

    无法在innerHTML创建的元素中应用事件

  3. 3

    动态元素并监听它们上的事件

  4. 4

    动态添加元素上的click事件

  5. 5

    动态绑定元素上的事件绑定

  6. 6

    动态创建的元素上的 EACH 事件绑定

  7. 7

    如何在动态添加的组件上使用事件发射器?

  8. 8

    如何在由JavaScript动态生成的对象上使用事件处理程序

  9. 9

    Java动态且干净地在多个按钮上使用事件处理程序

  10. 10

    如何在动态生成的 vuejs 上使用事件处理程序

  11. 11

    在流星模板中为新创建的元素重新应用事件侦听器

  12. 12

    联合JS-如何在Shapes.devs上应用事件

  13. 13

    在动态创建的元素上动态创建onclick事件

  14. 14

    如果未连接到DOM,JS是否会使用事件侦听器删除经过动态创建的元素?

  15. 15

    单击对话框中动态元素上的事件

  16. 16

    jQuery Tooltip事件未在动态创建的元素上触发

  17. 17

    动态添加的元素上的Hammer.js事件

  18. 18

    侦听动态内容上的点击事件并确定父元素

  19. 19

    jQuery Tooltip事件未在动态创建的元素上触发

  20. 20

    动态生成元素上的jquery click事件

  21. 21

    Cytoscape无法获得动态添加的元素上的click事件

  22. 22

    jquery 监听动态创建的元素上的点击事件

  23. 23

    如何在动态创建的元素上触发按键事件

  24. 24

    无法在窗口调整大小上删除和应用事件处理程序。(在FireFox中不能在Chrome中使用)

  25. 25

    jQuery:使用事件委托时,可以在所有选择器上应用操作吗?

  26. 26

    jQuery动态调用事件监听器

  27. 27

    jQuery动态调用事件侦听器

  28. 28

    动态创建时多次调用事件处理程序

  29. 29

    动态事件上的onchange事件

热门标签

归档