Pomster
Pomster

Reputation: 15197

jQuery click on action link not doing anything?

I have a button which when i click it i would like it to click a hidden action link.

The click on the action link is not doing anything. but if i click the action link my self it works, just not when i make jquery click it?

function myClickFunction() {
   $('#CloseLink').click();
   //$(document).on("CloseLink", "click", function())
}

<input id="btnClose" type="button" value=" Close " onclick="myClickFunction()"/>
  <div style="visibility:hidden">
     @Html.ActionLink("Close", "APClientIndex", "Home", null, new { id="CloseLink", @class = "btn btn-primary niceButton" })
  </div>

Plain html:

<input id="btnClose" type="button" value=" Close " onclick="myClickFunction()">
<div style="visibility:hidden">
  <a class="btn btn-primary niceButton" href="/Home/APClientIndex" id="CloseLink">Close</a>
</div>

Upvotes: 1

Views: 988

Answers (3)

Pomster
Pomster

Reputation: 15197

$('#CloseLink')[0].click()

Is what i used as suggested by tewathia in the comments section.

The jQuery click method fires the onclick event of that element. In order to simulate a click on an anchor a tag, you need to run the click method of the DOM element itself.

Upvotes: 0

Rui
Rui

Reputation: 4886

If what you want is to simulate the user clicking an anchor tag, I don't think that is possible with javascript

What you can do is read the anchor tag's href attribute and change the window location manually:

function myClickFunction() {
  var href = $('#CloseLink').attr("href");
  window.location.href = href;
}

Upvotes: 2

ajimenez
ajimenez

Reputation: 175

If I understand what you are trying to do is to fire the click action by javascript?

With $('#CloseLink').click(); you are not firing the click event, you are binding an action to the click, but you don't have any function inside like $('#CloseLink').click(function(){...});

So if you want to fire the click event you need to do $('#CloseLink').trigger('click');

Upvotes: 0

Related Questions