Javascript Jquery菜单-返回json数据

Javascript Jquery菜单-返回json数据,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我已经从jquery脚本创建了一个菜单。该脚本解析json响应文件并创建菜单。这很有效。但是,菜单会链接到URL。我不希望它链接到URL,而是从该URL获取json响应并解析它。我试过了,不管怎样,它总是跟随URL。以下是我到目前为止的情况: jQuery菜单创建(工作): $.getJSON('https://example.com/api/products/GetProductList/,函数(数据){ var输出=“”; 用于(data.Categories中的var i){ 输出+='

我已经从jquery脚本创建了一个菜单。该脚本解析json响应文件并创建菜单。这很有效。但是,菜单会链接到URL。我不希望它链接到URL,而是从该URL获取json响应并解析它。我试过了,不管怎样,它总是跟随URL。以下是我到目前为止的情况:

jQuery菜单创建(工作):


$.getJSON('https://example.com/api/products/GetProductList/,函数(数据){
var输出=“”;
用于(data.Categories中的var i){
输出+='';
输出+='';
对于(data.Categories[i].Products中的var j){
输出+='
  • '; } 输出+=“”; } 输出+=“”; document.getElementById(“accordion”).innerHTML=输出; });
    这将创建一个包含如下项的菜单

    <a class="ProdLink" href="https://example.com/api/products/GetProductDetail/2">Test Item</a>
    
    
    
    要解析此URL中的数据,我已尝试:

         <script>
     $('#accordion').on('click','a.ProdLink',function(event) {
        event.preventDefault();
        var url = $(this).attr("href");
    
        $.getJSON(url, function(data) {
            var output = '<div>';
            for (var i in data) {
                output += data[i].full_description;
            }
            output += "</div>";
    
            document.getElementById("itemdata").innerHTML = output;
        });});
    
    </script>
    
    
    $('#accordion')。在('click','a.ProdLink',函数(事件){
    event.preventDefault();
    var url=$(this.attr(“href”);
    $.getJSON(url、函数(数据){
    var输出=“”;
    用于(数据中的var i){
    输出+=数据[i]。完整描述;
    }
    输出+=“”;
    document.getElementById(“itemdata”).innerHTML=输出;
    });});
    

    但这不起作用。任何洞察都将不胜感激。

    您正在动态添加链接,因此使用来处理动态元素上的事件,这里是
    a.ProdLink

    $('#accordion').on('click','a.ProdLink',function(event){
      ...
    });
    
    此外,此行建议
    ProdLink
    id
    ,将其更改为
    class
    t以避免重复id

    output += '<li><a id="ProdLink" ...
    

    output+=”
  • 应使用apt paradensis关闭click函数。

    此摘录似乎缺少右大括号和圆括号
    在结束标记之前。实际代码就是这样吗?这是我在这里的一个输入错误,实际代码是正确的。我已经尝试过了,但它仍然转发到“”,而不是执行脚本。你确定类属性是吗?是的,将id=“ProdLink”更改为class=“ProdLink”,我已更新以显示当前状态。但仍然无法工作。请尝试使用$(文档)而不是$('#accordion')。尝试向代码中添加调试器,以检查单击是否触发
    
    output += '<li><a id="ProdLink" ...