2011-12-28 13 views
0

nodejsを使用しています。トンの仕事、私はその後、データテーブルが、DataTableのドンに定義された(ダブルクリックなど)のすべての機能として、それを初期化し部分図のレンダリング。 Javascriptファイルはレンダリングされたビューには適用されませんか?

$("#right").append(resp); 

:およびJavaScriptファイルから次のようなものを呼び出します。ダブルクリックのコードをコンソールにコピーすると動作します。

私は間違っていますか?

編集:詳細だから今私が持っているのは、ユーザーがajaxを使ってサイドバーにプレイリストを表示するときです。プレイリストをクリックすると、そのプレイリストが読み込まれます。ただし、ページが完全に再読み込みされない限り、application.jsのコード(最初に読み込まれます)はプレイリストに適用されません。

$.ajax({ 
    type: "POST", 
    url: '/login', 
    data: { email: email, password: pass }, 
    success: function(result) { 
    $.get('/toop', function(data) { 
    console.log(data); 
    if (data == "fail") { 
     alert("error"); 
    } else { 
    $("#header").html(data); 
    $(document).trigger('close.facebox'); 
    $.get('/getPlaylists' , function(playlists) { 
    $("#left").html(playlists); 
    }); 

これは単にユーザーのためのプレイリストを取得し、サイドバー上に置く:ここ

は、私が持っているいくつかのコードです。今私は持っているapplication.jsファイル:

$(".user-playlist").click(function(e) { 
    var playlist = e.target; 
    var id = $(playlist).attr('data-playlist'); 

。 。 。 。

ただし、ページを完全に更新すると、再生リストのクリックが検出されます。ちょうどajax doesntを使ってレンダリングします。私は新しいビューを取得するとき{layout:false}しています。 application.jsをリロードする必要がありますか?私はノード(とWeb開発者)には新しいです。ありがとう

+3

詳細情報の提供はどうですか?データテーブルはどういう意味ですか?コードをもっと見せてくれますか? – alessioalex

答えて

1

clickイベントハンドラは、$(".user-playlist")が呼び出されたときに.user-playlistと一致する要素のセットにのみ適用されます。ウェブインスペクタを開き(またはFirebugの)、それらはあるどの要素を参照し、JavaScriptは、あなたの記事に含まスニペット直前にこの行を追加するには、次のプレイリストがどこにある

console.log($(".user-playlist")) 

あなたはページ上の空の配列が表示されるはずですAjaxからロードされ、完全リフレッシュ後に少なくとも1つの項目がページに表示されます。

ページにない要素についてもイベントハンドラを添付するには、onメソッドのドキュメント(具体的には、liveメソッドに属していた機能)を参照してください。

+0

恐ろしい!ありがとう。しかしonを使うとうまくいきませんでしたが、エラーオブジェクトにはメソッドがありません。しかし、ライブは完璧に動作しているようです。正確に私が必要なもの! – Jonovono

関連する問題