Greetings) Help please)) When an Ajax request dynamically creates an element on the page. How to get the attribute of a dynamically added element when clicking on it? In the console (main.js: 421 Uncaught TypeError: this.attr is not a function)

//Ѐункция которая вызываСтся Π² success function moveAjax(answerAjax){ var objAjax = answerAjax; (function addBtn(answerAjax){ let tabBtns = $('.tab-btns'); for(let i = 0; i < objAjax.length; i++){ var btnData = objAjax[i].data; //ДинамичСскоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта $(tabBtns).append('<li><span data="' + btnData + '">' + objAjax[i].name + '</span></li>'); console.log(objAjax[i].name); }; })(); console.log(objAjax); (function(){ //ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий Π½Π° динамичСски Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ элкмкнт $(".tab-btns>li").on("click", "span", function(){ console.log(this.attr("data")); //ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ "data" динамичСски Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта }) })(); }; //Запрос $.ajax({ dataType: "json", url: 'js/json/prices/prices.json', cache: false, error: function(XHR, status, error) { console.log(status+' '+error); }, success: function(answerAjax) { moveAjax(answerAjax); } }); 
  • one
    $(this).attr(...) - jQuery wrapper is needed here. tabBtns.append( - but is not needed here. - Igor
  • Thank you) Very helpful) - qfrontend

0