2015-08-15 76 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