Adding onClick event dynamically via jquery not working in lightning

1.1K    Asked by NakamuraMatsumoto in Salesforce , Asked on Aug 8, 2021
<!--Required scripts.--> 
I have a filter button created dynamically, and there I am adding attributes using jquery .attr.
jQuery("document").ready(function(){ // Other code $(objFilterButton).attr('class', 'btn btn-default btn-lightning'); $(objFilterButton).attr('onClick', 'showFilter(event)'); });

The class gets added but, I cannot see the onClick event getting added on the dom. Is this a limitation in lightning?

enter image description here

Answered by Sarah Lee

 jquery onclick event dynamically don’t work in Lightning framework.


unfortunately, this is a limitation of the Lightning framework. Use $(elements).on(eventName, handlerRef) instead. Note that you should not try to use the old onevent style attributes anyways.



Your Answer

Answer (1)

You're absolutely correct—jQuery's onclick event handlers don't work as expected with dynamically created word games elements in the Lightning framework due to its component encapsulation and shadow DOM structure.


The recommended solution is to use delegated event handling with $(elements).on(eventName, handlerRef) instead. This approach ensures that the event is properly handled even for dynamically added elements. Here's an example:


javascript

$[removed]('click', '.your-dynamic-element', function() {

    console.log('Dynamic element clicked!');

});

1 Week

Interviews

Parent Categories