0

私はdrupalを使用しており、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/の使用を提案してくれましたが、使用方法がわかりません。

助けてください

4

2 に答える 2

1

これは、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"));
   });
});
于 2012-04-20T11:21:44.533 に答える
0

Drupal.attachBehaviors()を使用して:)

$(id).load(url, function(){
    Drupal.attachBehaviors(this);
});
于 2012-08-11T08:56:57.337 に答える