2011-12-28 165 views
0

我正在使用nodejs。並呼籲像從一個JavaScript文件如下:呈現局部視圖。 JavaScript文件不適用於該呈現的視圖?

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

我對其進行初始化作爲數據表唐定義一個數據表,但所有的功能(例如DoubleClick); T的工作。如果我將doubleclick的代碼複製到控制檯中,它就可以工作。

我在做什麼錯?

編輯:更多信息。所以我現在擁有的是用戶登錄時使用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渲染它不會。獲取新視圖時,我在做{layout:false}。我是否必須重新加載application.js?我對節點(和web開發人員)很陌生。謝謝

+3

如何提供更多信息? datatables是什麼意思?你能向我們展示更多你的代碼嗎? – alessioalex 2011-12-28 18:54:00

回答

1

click事件處理程序將只適用於調用$(".user-playlist")時匹配.user-playlist的元素集合。看到那些是哪些元素,打開Web檢查(或螢火蟲),並加入這一行之前的JavaScript代碼段包括你在你的信息:

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

你應該在頁面上看到一個空數組,其中播放列表從Ajax加載,並在完全刷新後至少有一個項目在頁面上。

要附加事件處理程序,即使是尚未在頁面上的元素,請閱讀on方法(特別是,屬於live方法的功能)的文檔。

+0

真棒!謝謝。但使用沒有工作,說錯誤對象沒有方法。但現場似乎是完美的。正是我需要的! – Jonovono 2011-12-28 20:40:39