簡體   English   中英

渲染局部視圖。 Javascript文件不適用於該渲染視圖嗎?

[英]Rendering a partial view. Javascript files dont apply to that rendered view?

我正在使用nodejs。 並從javascript文件中調用類似以下內容的內容:

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

然后,我將其初始化為數據表,但在數據表上定義的所有功能(如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? 我是Node(和Web開發人員)的新手。 謝謝

當調用$(".user-playlist")時, click事件處理程序將僅應用於與.user-playlist匹配的元素集。 要查看哪些元素,請打開Web檢查器(或Firebug),並在您帖子中包含的JavaScript代碼段之前添加以下行:

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

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

要甚至為頁面上尚未存在的元素附加事件處理程序,請閱讀on方法的文檔(具體來說,該方法曾經屬於live方法)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM