2

jsonから受け取った応答にajax呼び出しを適用しようとしています。

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

前もって感謝します。

4

2 に答える 2

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

新しいアンカーを含む最も近い静的(DOM 対応で存在する) 要素staticContainerをフェッチするには、selector: を置き換える必要があります。

于 2012-04-21T18:06:26.677 に答える
0

ありがとう@gdoron、私はそれを手に入れました。

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

よろしく、プラブーMK

于 2012-04-22T14:33:34.280 に答える