jquery - 将 JQuery 效果应用于新添加的元素

标签 jquery

Possible Duplicate:
Jquery live() vs delegate()

我在将 JQuery 应用于加载页面后添加到 DOM 的函数时遇到一些问题。我使用以下代码将新行添加到表主体:

  $("tbody").load("php/create_rows.php?" + $.param({ "type": "unique", "unit": "day", "interval": 2 }));

效果很好。行被添加,但作用于表主体中的行的 Jquery 函数不会影响新行。例如,行上的鼠标悬停应该应用一个类来更改背景颜色:

  $('tbody tr').hover(function() {
    $(this).find('td').addClass('hover');
  }, function() {
    $(this).find('td').removeClass('hover');
  });

但是它不起作用。它适用于页面上已经出现的代码,以及不是从 Jquery 生成的代码。

最佳答案

你必须包裹你的

$('tbody tr').hover(function() {

到一个函数中,当你向 DOM 添加动态元素时,你需要像这样调用该函数

function something (){
   $('tbody tr').hover(function() {
    $(this).find('td').addClass('hover');
  }, function() {
    $(this).find('td').removeClass('hover');
  });
}

$("document").append(someelement);
something();

使用输入字段完成的示例 http://jsfiddle.net/MKcaH/1/

想想你可以使用[1]:http://api.jquery.com/delegate/ “委托(delegate)”

关于jquery - 将 JQuery 效果应用于新添加的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6498597/

相关文章:

javascript - 实现具有多个集合的主视图。主干网.js

javascript - 使用 Twitter Bootstrap(使用 jQuery)输入货币

javascript - jQuery 事件按键 : Enter key

javascript - Ajax 或 Jquery 加载直到页面完成呈现 rails View 页面

jquery - 如何填充 Materialize.css 芯片自动完成数据?

jquery - 具有 flex 效果的CSS div框动画

javascript - 通过 Ajax 调用加载元素后,单击事件不起作用

javascript - 当屏幕尺寸小于 480px 时如何禁用 jQuery 功能?

javascript - 折叠 Div 内的表单未提交

javascript - 列表关闭并显示