2012-04-20 161 views
0

我使用Drupal的和ihve使用jquery加載功能腳本停止加載的形式工作 - jQuery的負載AJAX

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

所以successfuly加載的節點創建表單點擊鏈接時,它會加載形式

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

現在我的問題是像日期彈出窗口的所有腳本不適用於此loded窗體。有人建議我使用http://api.jquery.com/live/,但我不知道如何使用。

請幫忙

回答

0

(),我們可以:)

例如

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

這是因爲DOM正在重新加載新的HTML。因此你在這些節點上的綁定將不再起作用。

對於其他綁定,您可以使用http://api.jquery.com/on/(實時事件已棄用),但據我所知,不能用於日期選擇器。

你可以做這樣的事情:用Drupal.attachBehaviors

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")); 
    }); 
}); 
+0

感謝,但是這將是耗時..我想要使用它更多的形式,有沒有簡單的方法就像在Ajax負載,更改DOM – Serjas 2012-04-20 11:49:02

+0

例如,Facebook如何做到這一點?綁定每個函數agaian並再次!我不這麼認爲 – Serjas 2012-04-20 11:51:36

+0

對於事件和東西,你可以在事件類型上使用jQuery,但據我所知,不能用於datepicker。我用多種形式的示例更新了我的答案。 – 2012-04-20 12:03:05