Ajax调用的JSON响应 [英] Ajax call for the json response
本文介绍了Ajax调用的JSON响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想申请Ajax调用从JSON收到的响应。
下面我的HTML。
< DIV ID =标签>
< UL>
<李>< A HREF =#ed_pro>产品类别< / A> < /李>
<李>< A HREF =#ed_img>添加图片< / A> < /李>
<李>< A HREF =#ed_txt>添加文字< / A>< /李>
< / UL>
< DIV ID =ed_pro>
< / DIV>
< DIV ID =ed_img>
< / DIV>
< DIV ID =ed_txt>
< / DIV>
< / DIV>
和
函数handleTabSelect(数据){
VAR项目='< UL>';
$每个(数据,功能(我,对象){
项目+ ='<李><一个ID =main_cat的href =#> + object.img_cat_des +'< / A>< /李>';
});
项目+ ='< / UL>';
$('#ed_img)追加(项目)。
标志= 1;
}
$('#main_cat)。点击(函数(){
VAR为url1 = $(本).attr(HREF);
警报(URL1);
});
$(#标签)选项卡()。
$(#标签)。绑定(tabsselect功能(即标签){
如果(旗== 0){
jQuery.ajax({
键入:POST,
网址:'?Q =设计/ lab_tab',
数据类型:JSON,
数据:'slider_value ='+ tab.index,
成功:handleTabSelect,
错误:函数(XHR,状态){
警报(xhr.statusText);
}
});
}
});
获取从JSON响应后,上面的脚本将追加为列表
< UL>
<李>
<一个ID =main_cat的href =#>动物< / A>
< /李>
<李>
&其中;一的id =main_cat的href =#>占星与所述; / a取代;
< /李>
< / UL>
我如何申请进一步Ajax调用了。
在单击A HREF,它永远不会调用
$('#main_cat)。点击(函数(){
VAR为url1 = $(本).attr(HREF);
警报(URL1);
});
在此先感谢。
解决方案
<一个ID =main_cat的href =#>动物< / A>
&其中;一的id =main_cat的href =#>占星与所述; / a取代;
-
编号
应该是唯一的,你有相同的ID
=>多个元素的无效的HTML - 在来创建一个委托的事件处理程序。 使用
固定标记:
<一类=main_cat的href =#>动物< / A>
&其中;一类=main_cat的href =#>占星与所述; / a取代;
JavaScript的:
$('staticContainer')。在('点击','.main_cat',函数(){
VAR为url1 = $(本).attr(HREF);
警报(URL1);
});
您应该替换选择: staticContainer
获取最近的静态包含新的锚元素(DOM的准备存在)
I am trying to apply ajax call for the response received from json.
Below my HTML.
<div id = "tabs">
<ul>
<li><A href="#ed_pro">Product Category</A> </li>
<li><A href="#ed_img">Add Image</A> </li>
<li><A href="#ed_txt">Add Text</A></li>
</ul>
<div id="ed_pro">
</div>
<div id="ed_img">
</div>
<div id="ed_txt">
</div>
</div>
and
function handleTabSelect(data) {
var items = '<ul>';
$.each(data, function(i, object) {
items += '<li><a id="main_cat" href=#>' + object.img_cat_des + '</a></li>';
});
items += '</ul>';
$('#ed_img').append(items);
flag = 1;
}
$('#main_cat').click(function() {
var url1 = $(this).attr("href");
alert(url1);
});
$("#tabs").tabs();
$("#tabs").bind("tabsselect", function(e, tab) {
if (flag == 0) {
jQuery.ajax({
type: 'POST',
url: '?q=design/lab_tab',
dataType: 'json',
data: 'slider_value=' + tab.index,
success: handleTabSelect,
error: function(xhr, status) {
alert(xhr.statusText);
}
});
}
});
After getting the response from json, the above script will append list of as
<ul>
<li>
<a id="main_cat" href="#">Animals</a>
</li>
<li>
<a id="main_cat" href="#">Astrology</a>
</li>
</ul>
How I can apply further ajax call for .
On clicking the a href, it never invokes
$('#main_cat').click(function () {
var url1 = $(this).attr("href");
alert (url1);
});
Thanks in advance.
解决方案
<a id="main_cat" href="#">Animals</a>
<a id="main_cat" href="#">Astrology</a>
Id
should be unique, you have multiple elements with the sameid
=> invalid HTML- use
on
to create a delegate event handler.
Fixed markup:
<a class="main_cat" href="#">Animals</a>
<a class="main_cat" href="#">Astrology</a>
Javascript:
$('staticContainer').on('click', '.main_cat', function(){
var url1 = $(this).attr("href");
alert (url1);
});
You should replace selector: staticContainer
to fetch the closest static(exist on DOM ready) element that contains the new anchors.
这篇关于Ajax调用的JSON响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文