9

I dynamically load in a few li's that have a label and a checkbox in them to another visible ul. I set the checkboxes to be checked="checked" and i am trying to trigger an event to happen when i change these dynamically inserted checkboxes but nothing occurs.

Here is the jquery:

$(".otherProductCheckbox:checkbox").change( function(){
    alert('test');
});

Here is the html for the dynamically added li's:

<li class="otherProduct"><input type="checkbox" class="otherProductCheckbox radioCheck" checked="checked"/><label>Product Name</label></li>

Any idea why i cant get the alert to happen when the checkbox changes its checked state?

3 Answers 3

21

You have to use liveQuery or live to bind events to dynamically added elements.

$(".otherProductCheckbox:checkbox").live('change', function(){
    alert('test');
});

EDIT To work in IE, you have to use click not change

$(".otherProductCheckbox:checkbox").live('click', function(){
        alert('test');
 });
Sign up to request clarification or add additional context in comments.

7 Comments

@Teja Kantamneni: Perfect. Thanks for the direction. Still learning the ins and outs of jquery.
You're only required to do that if the elements are being added after the event handler has been set up.
@Gareth: yah that makes sense now.
Thats the issue with IE, IE will trigger change event only after the element looses the focus. webbugtrack.blogspot.com/2007/11/…
For fix, use click instead of change
|
21

Since live() is now deprecated as of jQuery 1.7, I thought I'd post the solution that worked for me on the same problem (trigger event when dynamically added checkboxes are changed).

$(document).on('click', '.otherProductCheckbox', function() {
    alert('test');
});

1 Comment

document.getElementById('id').live('click',function() { alert('test'); }); It is not working for me.. what "otherProductCheckbox" means here ?
0

neither of the above worked for me, but this one worked when adding the checkbox dynamically for a list of items in a listview.

$('.favourite_itemList').on('click','.checkBox', function () {
   alert('test')
)};

Although no visible function/attribute change is shown in the particular checkbox element when optIn or optOut, the above code works well for me.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.