jQuery - Click() doesn't work when clicking a <li> in an <ul>
jquery
Solution
$('#site_list').on('click', 'li', function(){
$(this).toggleClass("site_selected");
});
As you're addling `li` dynamically so you need delegate event handler to `li`.
Note
Delegate event structure of `.on()` is like following:
$(container).on(eventName, target, handlerFunction)
Here `container` point to a `Static-element` that contains the `target` element and belongs to DOM at page load.
Problem
Trying to click an item in a dynamically-generated list, but the `$.click()` function just won't fire. HTML for the list: ``` <div> <ul id="site_list"> </ul> </div> ``` jQuery to generate the list (which works as intended, generating a long list of data with the desired class attribute): ``` var sites =[]; $.getJSON("php/ABC.php", function(result){ $.each(result.Sites, function(i,v){ sites.push('<li class="site" id="site_'+ ABC + '</li>'); }); $('#site_list').append(sites.join('')); }); ``` jQuery to be triggered when clicking a list (doesn't work...it doesn't throw errors...just fails to respond. I've tried `$('#site')` as well, to no avail. I suspect it's due to the method I'm using to generate the `<ul>`...something is preventing the DOM from properly recognizing each element inside the UL.: ``` $('li').click(function(){ $(this).toggleClass("site_selected"); }); ```