raj
raj

Reputation: 543

How we can bind event inside jquery plugin

I need to bind click event for a anchor tag which is created dynamically.

Example:

$.fn.ccfn = function(){
$(".alreadyavailabledom").click(function(){
   $("<a class="dynamicallycreated"></a>");
})
//i am trying like below, but not working

$(".dynamicallycreated").click(function(){
alert("not getting alert why?")
})

}

It is written as a plugin code, i tried with on, live etc. Not working.

Upvotes: 0

Views: 83

Answers (2)

Anton
Anton

Reputation: 32591

Use event delegation

$(document).on('click','.dynamicallycreated',function(){
    alert("not getting alert why?")
})

or bind the click when creating element

$.fn.ccfn = function () {
    $(".alreadyavailabledom").click(function () {
        $('<a>', {
            html: "anchor",
            class: "dynamicallycreated",
            click: function () {
                alert("clicked anchor");
            }
        }).appendTo('#myElement');
    })
}

Upvotes: 0

Anoop Joshi P
Anoop Joshi P

Reputation: 25537

you should use event delegation for that

$(document).on("click",".alreadyavailabledom",function(){
   //some operation
});

It helps you to attach handlers for the future elements

Upvotes: 1

Related Questions