0

I have a link appended to a div element. And on clicking the link, I want a function to be executed.In order to check if the function is called, when I click the link, i had an alert box in that function. But no alert box is appearing if I click the link?

This is the link added to the div element 'fb_contentarea_col2top'.

$("<p class='title2'>Recent Entries | <a id='actions' href='#'>Actions</a> </p>").appendTo("#fb_contentarea_col2top");

When I click this link, I want this function to be called,

$('#actions').click(function (){
    alert("HI");

});

But the alert does not come. What is the mistake I am doing?

0

3 Answers 3

5

You'll want to change "click" to live:

$("#actions").live("click", function() {
  alert("hi");
});

This will bind the actions to any #actions that presently exists, or will exist in the future. In your case, you're adding it in later.

Sign up to request clarification or add additional context in comments.

1 Comment

...or, bind the click event after you create the element.
0

Have you got the script inside a document ready block. Else use .live outside the ready block.

$(function(){

  $('#actions').click(function (){
        alert("HI");

  });

});

Comments

0

Try this:

$("#actions").bind('click', function() {
    alert("HI");
});

1 Comment

.bind and .live are slightly different: live binds to all future matches (which shouldn't be a problem, since id's should be unique). I'm just more used to using .bind, which is why I suggested it.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.