Javascript Jquery菜单-返回json数据
我已经从jquery脚本创建了一个菜单。该脚本解析json响应文件并创建菜单。这很有效。但是,菜单会链接到URL。我不希望它链接到URL,而是从该URL获取json响应并解析它。我试过了,不管怎样,它总是跟随URL。以下是我到目前为止的情况: jQuery菜单创建(工作):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){ 输出+='
$.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" ...