AJAX响应将所有数据包装到JS变量中,因此我不能在它们上使用HTML属性

时间:2014-10-23 18:14:17

标签: javascript jquery html ajax

我做了一个正在运行的AJAX调用(用HTML显示所有请求的数据),但我需要它做更多。我需要HTML属性来生成这些生成的li元素,示例值或href。我不能拥有它们,因为它们被包装到javascript变量中。

$(document).ready(function(){
  $.ajax({
  type: "GET",
  url: "controllerURL",
  success: function(response){
        var list = $('#car_list');
        list.empty();

        for (var i = 0; i < response.length; i++){
             var output = "";
             output +="<li><a href=\"#\">" + response[i].name + "</a></li>";
             list.append(output);
             }         
 };
});

它会为我的HTML列表生成所有内容:

<ul id="car_list">
</ul>

但是现在如果我做了

$('#car_list li').click(function(){
  alert("HELLO!");
});

它永远不会警告,因为javascript变量(至少我是这么认为的,JS / jQuery / AJAX对我来说是非常新的)。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这些li元素是动态的,因此您需要使用.on并将初始选择器附加到事件绑定中存在的静态容器中:

$('#car_list').on('click', 'li', function(){