2011-07-25 45 views
0

我有工作的偉大以下兩個功能:超級簡單的jQuery的問題 - 刷新靜態html

$(function(){ 
    $('.trash_can a.delete').live('click', function(event) { 
    event.preventDefault(); 
    var link = $(this); 
    $.post(link.attr('data-href'), 
     { 
     promo_id: link.attr('data-promo_id') 
     }, 
     function(data) { 
     $('#page').html(data.html); 
     }); 
    console.log('Clicked Delete'); 
    }); 
}); 

$(function(){ 
    $('#add-mod-form').bind('ajax:success', function(evt, data, status, xhr){ 
     data = $.parseJSON(data); 
     // console.log(data.success); 
    if (data.success == true) { 
      $('#page').html(data.html); 
      $('#page box_bc').html() 
     } 
     else { 
     } 
    }); 
}); 

在接收到數據的頁面,我也想重新加載一個靜態的HTML元素,$('# page box_bc') - 我如何使用Jquery完成這個簡單的任務?請注意,我已經在上面嘗試過了,該部分不能按計劃運行。

感謝

+0

你爲什麼要訪問'.attr( '數據 - *')的''代替。數據( '*')'? – davin

+0

'box_bc'不是選擇器。如果你想達到你想要的,你將需要一個有效的選擇器。你的標記是什麼樣的? – davin

+0

請提供一些HTML,是「box_bc」的標籤名稱嗎? –

回答

0

用途:

var $dataHtml=$(data.html); 
$('#page box_bc').html($('#page box_bc',$dataHtml)); 
0

這不是很清楚,我你想達到的目標。如果元素是靜態的,試圖刷新它的意義是什麼?如果它的內容在某種程度上取決於頁面的其他元素:那麼它必須被重構。 你寫的代碼失敗,因爲: $('...').html() 返回該元素的HTML內容。它不會對內容做任何事情。如果你能詳細說明代碼的上下文和目的,可能會更好。

+0

它不一定是靜態的。有嵌入的ruby代碼。因此,關鍵是要運行Ruby邏輯可能不相關的JQuery的人 –

+0

如果你有興趣,邏輯計算的評論的數量,並顯示一個表單,如果意見小於3,如果大於3隱藏它。 –

+0

無論嵌入的ruby代碼是在頁面被分派到客戶端之前在服務器上解析和處理的。一旦頁面傳遞給客戶端刷新頁面的特定部分(如@DarmRet所建議的)絕對不會導致重新處理Ruby代碼。唯一的辦法是重新處理ruby代碼,以通過ajax請求從服務器重新獲取該部分。 – lorefnon