2015-08-15 77 views
0

我有一個訂購系統,每次點擊向上或向下箭頭時,它會添加1或從列表順序中刪除1。每次鏈接被點擊時,頁面刷新。如何點擊鏈接但不能重新加載頁面?

有沒有辦法避免刷新,但仍然更新並顯示頁面上的新訂單?

我的目錄

<div class="row select-order"> 
    <ol> 
     @foreach (var item in Model) 
     { 
      <li>      
        @item.TaskName 
        @if (item.TaskType != (short)OBTaskTypes.SignOn && item.TaskType != (short)OBTaskTypes.Finalize) 
        { 

         <a href="@Url.Action("SetTaskOrder", "OBClientSetupTasks", new { id = item.SetupID, tid = item.TaskID, oldOrder = (short)item.TaskOrder, newOrder = ((short)item.TaskOrder + 1)})"><i class="fa fa-arrow-down"></i></a> 
         <a href="@Url.Action("SetTaskOrder", "OBClientSetupTasks", new { id = item.SetupID, tid = item.TaskID, oldOrder = (short)item.TaskOrder, newOrder = ((short)item.TaskOrder - 1) })"><i class="fa fa-arrow-up"></i></a> 
        }      
      </li> 
     } 
    </ol> 
</div> 

每次那些HREF的一個被點擊它,將訂購和刷新。

+0

嘗試text sarath

+0

從技術上講,如果這些環節都沒有真正* *鏈接,那麼你不應該擺在首位使用錨標記。相應地使用任何其他基於文本的可點擊元素和樣式。但是,由於您使用的是錨點,因此瀏覽器將其視爲錨點。您*可以*重寫該行爲,但您也可以不首先使用它。 – David

+0

當你點擊它們時,他們確實做了他們需要做的事情。他們通過控制器運行,設置順序然後回傳。我認爲沒有一種方法可以在不刷新的情況下顯示更新的訂單。 – TheDizzle

回答

2

我真的會再看一次,並確保您需要使用錨標籤。也許按鈕會更好。如果必須,那麼你必須防止發生默認事件。

http://api.jquery.com/event.preventdefault

$('.select-order a').click(function(event) { 
    event.preventDefault(); 
    // Do other stuff if needed 
}); 

演示:https://jsfiddle.net/wxddszct

+0

我試過了。我遇到的問題是點擊後沒有更新頁面上的訂單。 – TheDizzle

+0

它看起來像您使用的任何「訂購系統」,需要刷新才能執行此操作。 PreventDefault完全按照它所說的。它可以防止默認情況發生,在鏈接的情況下,它將阻止它「進入」該鏈接(通過您的控制器運行)。也許看看是否可以用ajax調用來完成,而不需要刷新頁面。 – Bruffstar