2012-04-21 92 views
2

我正在嘗試應用ajax調用從json接收到的響應。Ajax調用json響應

在我的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> 

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); 
      } 

     }); 
    } 
});​ 

正從JSON響應後,上面的腳本將追加爲

<ul> 
<li> 
<a id="main_cat" href="#">Animals</a> 
</li> 
<li> 
<a id="main_cat" href="#">Astrology</a> 
</li> 
</ul> 

如何我可以申請進一步Ajax調用的列表。

在點擊A HREF,它永遠不會調用事先

$('#main_cat').click(function() { 
var url1 = $(this).attr("href"); 
alert (url1); 
}); 

感謝。

回答

2
<a id="main_cat" href="#">Animals</a> 
    <a id="main_cat" href="#">Astrology</a> 
  • Id應該是唯一的,你有同樣的id =>無效HTML
  • 使用on多個元素,創造一個委託的事件處理程序。

固定標記:

<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); 
}); 

,就應該替換選擇:staticContainer獲取最接近靜態(存在於DOM ready)元素,其中包含新的錨點。

+0

謝謝..我有下面的代碼$( '#ed_img')實現它。綁定( '點擊', '.main_cat',函數(事件){ var tg_element = $(event.target); var url1 = tg_element.attr(「href」); alert(url1); }); – 2012-04-22 08:35:08

+0

@PrabhuMK。很酷,你可以寫出答案或接受這個答案。祝你好運! – gdoron 2012-04-22 09:03:08

0

謝謝@gdoron,我明白了。

$('#ed_img').bind('click', '.main_cat',function(event){ 
    var tg_element = $(event.target); 
    var url1 = tg_element.attr("href"); 
    alert (url1); 
}); 

問候, 帕布MK