脚本停止为加载的表单工作 - jquery load ajax


scripts stop working for loaded form - jquery load ajax

我正在使用Drupal,并且IH已经使用jQuery加载函数成功加载了节点创建表单

<div id='test'></div>
<a href='#' id='test2'>test</a>

因此,当单击链接时,它将加载表单

var ajax_load = "loading...";
var loadUrl = "NODE_CREATE_PATH";
$("#test2").click(function(){           
   $("#test").html(ajax_load).load(loadUrl);                
});

现在我的问题是所有脚本,如日期弹出窗口都不适用于这个寄存表格。 有人建议我使用 http://api.jquery.com/live/,但我不知道如何使用。

请帮忙

这是因为 DOM 正在用新的 HTML 重新加载。因此,这些节点上的绑定将不再起作用。

据我所知,您可以将:http://api.jquery.com/on/(实时事件已弃用)用于其他绑定,但不适用于日期选择器。

你可以做这样的事情:

function bindStuff(node) {
    node.find('.datepicker').datepicker();
    // Do some more bindings here
}
$("#test2").click(function(){
   $("#test").html(ajax_load).load(loadUrl, function() {
       bindStuff($("#test"));
   });
});
$("#example2").click(function(){
   $("#example").html(ajax_load).load(loadUrl, function() {
       bindStuff($("#example"));
   });
});

使用Drupal.attachBehaviors()我们可以:)

$(id).load(url, function(){
    Drupal.attachBehaviors(this);
});