在动态创建的标记上运行jQuery代码

时间:2013-05-31 14:46:58

标签: php jquery ajax

我有一个由php脚本创建的标签列表。这个php脚本定期运行,如下所示,php文件order.php返回所需的HTML

$(document).ready(function() {
  $("foo").load("order.php");
  var refreshId = setInterval(function() {
    $("foo").load('order.php?randval='+ Math.random());
  }, 100000);
  $.ajaxSetup({ cache: false });
});

这一切都按预期工作,使用firebug我可以看到已经创建了以下HTML:

<foo>
  <bar>something</bar>
  <bar>something else</bar>
  <bar>another thing</bar>
</foo>

现在我希望能够在单击div时执行php操作。我有以下代码:

$(document).ready(function(){
  $("bar").click(function() {
    alert("Hello, World");
  });
});

什么都没发生。但是,如果我手动将条形码键入HTML的任何部分,则会出现带有Hello World的警报。

php脚本创建的bar标签是否可以像手动输入HTML一样运行?

1 个答案:

答案 0 :(得分:3)

使用jQuery的on() method将事件绑定到bar的祖先,该祖先不会动态添加到页面中:

$('foo').on('click', 'bar', function() {
    alert("Hello, World");
});