2016-02-15 2 views
0

Я новичок в jquery ajax, я сделал все возможное, чтобы решить мою проблему с помощью ajax. В основном, я загружаю внешние данные json для установки в качестве ссылки или кнопки для выполнения некоторых действий. Однако после загрузки ajax он отключает другие функции jquery. В настоящее время я тестирую простое действие, но позже действие будет ajax-нагрузкой.не может встроенный элемент загружен из ajax

После моего поиска в Интернете об Ajax мне нужно использовать jquery 'when' для нескольких ajax, и мне нужно использовать jquery 'delegate'. Является ли это санкцией на мой случай?

Это просто моя работа

HTML и JS

$.ajax({ 
 
    url: "../JsonObj/mnb.json", 
 
    dataType: "json", 
 
    success: function (data) 
 
    { 
 
     for (var i = 0; i < data.nav_buttons.nav_button.length ; i++) 
 
     { 
 
      if (i > 0 && i < data.nav_buttons.nav_button.length) 
 
      { 
 
       $("nav").append("<h1>" + "|" + "</h1>"); 
 
      } 
 
      $("nav").append("<a href='" + data.nav_buttons.nav_button[i].url + "'>" + "<h1 id='citvnmb" 
 
       + i + "' class='citvnmbcls'>" + data.nav_buttons.nav_button[i].name + "</h1>" + "</a>"); 
 
     } 
 
    }, 
 
    error: function() 
 
    { 
 
     alert("unbale to load main nav buttons "); 
 
    } 
 
}); 
 

 
$("#citvnmb0").click(function() { 
 

 
    alert("test"); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 

 
    <nav> 
 
     
 

 
     
 
    </nav>

mnb.json

{ 
"nav_buttons": { 
    "nav_button": [ 

     { "name": "Kitchen",  "url": "#" }, 
     { "name": "Home",   "url": "#" }, 

    ] 
}} 

ответ

2

При создании элемента динамически, вы должны использовать on() для доступа к y наш элемент:

$(document).on("click","#citvnmb0" , function() { 
    alert("test"); 
}); 
+0

Большое спасибо, что это действительно помогает. Я столкнулся бы с новой проблемой, если я загружу данные ajax внутри этого действия? с другой стороны. Нужно ли использовать jQuery «.when», чтобы избежать дополнительной проблемы? –

+1

да, это безопаснее! –

0

Я хочу, чтобы ваши данные json были получены точно. У меня есть 2 решения

  1. набор атрибутов OnClick в теге
  2. Использование динамического на клик JQuery

    $ ("# citvnmb0"). На ("щелчок", функция() { оповещения («тест»); });

Смежные вопросы