jQuery trigger click event on an element.

Posted in :




The actual problem is with the interaction between jQuery’s .click() and the inline onclick code. jQuery’s .click() actually does two things: it first triggers any event handlers, including the inline onclick code, then it causes the checkbox to become checked.

The problem arises because the inline code tests whether the checkbox is checked. Because this is triggered first, the code finds that the checkbox isn’t checked, and doesn’t do anything. Now after this is finished, jQuery then goes and checks the checkbox.

How do we fix this? We check the checkbox manually first, then call the inline handler. Unfortunately, we can’t use jQuery’s .click() to call the inline handler, because it will uncheck the checkbox again (it will also call other jQuery-bound event handlers if you add these in the future, you probably don’t want that). Therefore we use the native DOM method I described earlier, since its only effect is to run the inline code.

Final code is this:

$("#metadata_field_text_10190_default").attr("checked", true)[0].onclick();


發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *