Bill Martin
Bill Martin

Reputation: 4943

How to run Jquery on click of an ActionLink

How do I run jquery when an MVC ActionLink is clicked? I have an action that takes some time. I want to show a 'processing' image until it returns. Is there a better way to do this?

Upvotes: 4

Views: 15252

Answers (3)

Frederiek
Frederiek

Reputation: 1613

Give the actionlink a class:

@Html.ActionLink("","", new { @class:"delete" })

Then you can hook up your jQuery to the class name in a js file:

$(document).ready(function() {
  $('.delete').click(function() {
    ///Code
  });
});

You can also work with id.

Upvotes: 5

Massimo Zerbini
Massimo Zerbini

Reputation: 3191

You can also use @Ajax.ActionLink without need of jQuery script. For example you can show a div when loading a page.

<div>
@Ajax.ActionLink("Link name", "Action", "Controller", new AjaxOptions { LoadingElementId = "loadingId", UpdateTargetId = "MyDataTable" })
</div>

<div id="loadingId" style="display:none; color:Red; font-weight: bold">
<p>Please wait...</p>
</div>

<div id = "MyData" class="tablediv">
    <table id = "MyDataTable" class="Grid">
        <tbody id="chartdata">
        </tbody>
    </table>
</div>

Upvotes: 3

MattW
MattW

Reputation: 13212

$('#element-id').live('click', function(e) {
   //do stuff here ...
});

The trick is to give your action link an ID HTML attribute so you can use it as your element id:

$('#html-attribute-id').live('click', function(e) {
   //do stuff here ...
});

Upvotes: 0

Related Questions