2012-10-10 35 views
1

我有下面的JavaScript将被执行时,页面加载AJAX链接: -如何动态创建返回的JSON

$(document).ready(function() { 

    $.ajax({ 
     type: "GET", 
     url: "http://localhost:8080/jw/web/json/workflow/package/list?loginAs=admin", 

     dataType: "JSONP", 
     // contentType: "application/json; charset=utf-8", 
     success: function (result) { 
      $.each(result.data, function (key, val) { 

       // Format the text to display. 
       var str = val.packageName ; 
       // Add a list item for the product. 
       $('<li/>', { text: str }) 
       .appendTo($('#products')); 

      }); 
     } 
    }); 
}); 

和asp.net web页面有以下列表,其中每个项目在列表中represtns一个JSON对象: -

<h1>All Processes</h1> 
<ul id="products"/> 

但是我试图做的是,而不是仅仅显示在列表中val.packageName,动态地创建一个Ajax链接,每个josn对象,当用户点击这个ajax链接调用另一个是的API,然后在另一个列表中显示返回的JSON。 但任何人都可以帮助我如何执行这样的功能? BR

回答

0

测试小提琴 - http://jsfiddle.net/picklespy/zWQHh/

列表项只需添加到ul以上和以下内容添加到您的JavaScript代码:

$('ul#products li').click(function(o){ 
    // alert($(this).text()) 
    // call your other api here... 
}); 

这将一个单击处理程序添加到每个列表项<ul id="products">,点击后会调用你的第二个ajax。

希望这会有所帮助。

+0

感谢您的答复,但这样列表项的包名不会显示为链接,它会显示为文本。 –

+0

好的,为了清楚起见,你能解释一下'显示为链接'的含义是什么......这样我可以相应地更新我的答案。 –

+0

可点击的链接,如ajax.actionlinks或等 –

2

我相信这是对处理程序列表中的事件的方式(http://the-jquerymobile-tutorial.org/jquery-mobile-tutorial-CH11.php

这完全适用于我一点点改变......

$('ul#products li').click(function(o){ 
    // alert($(this).text()) 
    // call your other api here... 
}); 

使用这种方式:

$(document).on('click', 'ul#products li', function(e){ 
    alert($(this).text()); 
}); 

也看看那些选择器:http://www.w3schools.com/jquery/jquery_selectors.asp

的问候:)