2013-05-04 127 views
0

我正在開發一個MVC應用程序。 我想開發一個評論框。如何在不點擊鏈接的情況下加載數據?

我已經寫代碼,在這段代碼中,我這樣寫, 當顯示註釋鏈接評論用戶點擊獲取顯現的過程。

現在,我想改變功能,沒有點擊顯示評論按鈕,所有評論應該加載。

我想這樣做,但它不工作。

顯示評論鏈接代碼

<div class="span12" style="margin-left:0px; margin-top:50px;"> 
     <span style="font-size:16px;"> 
      @Ajax.ActionLink("Show Comments", null, null, null, new { id = Model.Id, @class = "addremark" }) 

     <div class="RemarkBox"></div> 
     <span class="CommentAdd"></span> 
     </div> 

我想在頁面加載加載意見,我期待commments顯示負載,同時加載頁面,但我仍然要點擊顯示批註鏈接。

$(document).ready(function() { 

    $('a.addremark').click(addremarkClick); 

    // Call on load also 
    addremarkClick(); 

    }); 

    function addremarkClick(event) 
    { 

     var url = '@Html.Raw(Url.Action("ShowCommentBox", "Comment", new { Id = "idValue", EntityType = "Payment" }))'; 
     if (typeof event !== 'undefined') url = url.replace("idValue", event.target.id); 
     else url = url.replace("idValue", $('a.addremark')[0].id); 
     $('.RemarkBox').load(url); 
     $(this).closest('div').find('div.RemarkBox').show(); 
     return false; 
    } 

function addremarkClick() 
    { 
     alert("Clciked"); 
     var url = '@Html.Raw(Url.Action("ShowCommentBox", "Comment", new { Id = "idValue", EntityType = "Payment" }))'; 
     if (typeof event !== 'undefined') url = url.replace("idValue", event.target.id); 
     else url = url.replace("idValue", $('a.addremark')[0].id); 
     $('.RemarkBox').load(url); 
     $(this).closest('div').find('div.RemarkBox').show(); 
     return false; 
    } 
+0

瀏覽器js控制檯顯示一些錯誤?代碼應該工作,除非註釋塊未被加載並且點擊事件不能被觸發。 – Mangiucugna 2013-05-04 08:39:20

+0

我對addremarkClick()事件更感興趣,它也會出現警告窗口,但不會出現註釋。 – bnil 2013-05-04 09:04:20

+0

我可以建議住調試代碼,並檢查選擇「$(本).closest(‘DIV’),如果爲空,或者選擇正確的div – Mangiucugna 2013-05-04 10:07:35

回答

1

最好的方法將是載入頁面,然後再使用JS,得到可用$('a.addremark')和表演的評論鏈接列表,然後改爲觸發點擊事件,你可以遍歷集合,然後讓AJAX調用以便在運行期間加載註釋,而無需用戶單擊鏈接。

此外,有一個SetTimeOut javascript調用將會很有用,它會在特定的持續時間後刷新頁面上的評論,因此用戶不必刷新頁面或點擊鏈接查看更新的評論。您可以在Stackoverflow中看到類似的方法,它突然要求我單擊以重新加載帖子以查看編輯。所以它會提供更好的可用性。

編輯

下可以

  1. 頁面加載完成所有步驟後,該文件已經準備好,調用JavaScript方法查找所有以班級爲addremark鏈接。

  2. 對於每個鏈接元素,你將與它相關聯的帖子ID爲該評論是要獲取的

  3. 使AJAX調用與帖子ID,然後讓所有的意見,然後在更新相應的div。

  4. 上述方法可以傳遞一個參數給javascript方法的setInterval。對於這種方法請參考here

+0

對不起,得不到你... – bnil 2013-05-04 12:26:46

+0

@ user1650894:我已經解釋在上述職位的步驟。 – Saravanan 2013-05-04 12:34:10

0

插入以下JS在你的頁面,不常見的JS插入。

<script> 
     window.setInterval(function(){ 
      addremarkClick(); 
      }, 600000);// run this after every minute 
</script> 
+0

感謝susheel,但我只是想在頁面加載顯示評論... – bnil 2013-05-06 06:19:26

+0

添加上述相同的jQuery阿賈克斯後得到的評論,並添加任何HTML,也可以指定其他window.load ()事件做一些其他任務。 – Notepad 2013-05-06 06:35:36

相關問題