2011-12-28 170 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