0

サーバーからリストを取得して追加した後、絶対にIDを<ul>取得できません<li>

サーバーからフェッチ:

$('#listCategories').empty();
$.post("model/controller.php",
    { 
        postaction:'getCategoryList'
    },
    function(data){
        categoryList = data.message ;
        console.log( categoryList );
        $.each( categoryList , function( i , item ){
            alert( "moveTo_"+categoryList[i].id );
            $('#listCategories').append("<li class='has-sub' id = 'moveTo_"+categoryList[i].id+"'><a href='javascript:void(0);'><span>"+categoryList[i].title+"</span></a></li>");
        });

},'json');

リストをクリック:

$('[id^="moveTo_"]').on('click',function(){
    alert( $(this).attr('id') );
   $('[id^="cssmenu"]').hide(); // HIDE ALL SUBMENUS
   category_id = $(this).attr('id').split(/\_/)[1] ;
   $.post('model/controller.php', 
            {
                topic_id     : public_iId_topics  ,
                category_id  : category_id ,
                postaction   : 'move_current_post_category'
            }, 
      function(data){
            if (data.success){
                public_oTable.dataTable().fnReloadAjax();
                public_oTable.dataTable().fnDraw();
                animate_notify(data.message     , 2000 , '.content','',410,437);
            }
            else
                animate_notify(data.message     , 2000 , '.content','',410,437);
    },'json');
    return false;       
});

HTML :

   <li class='last'><a href='javascript:void(0);'><span><?php _tr( 'move_topic' ); ?></span></a>
       <ul id='listCategories'></ul>
   </li>

カテゴリのリストをフェッチして追加しても問題ありません。それを挿入するのに問題はありませんが、リストをクリックした後、イベントを取得できず、機能し.click()ません。

4

1 に答える 1

1

li個々の要素にバインドするのonではなく、委任された を使用する必要があります。次のようにバインディングを更新します。

$('li').on('click', '[id^="moveTo_"]', function(e) {
    // Your function here...
});
于 2013-06-17T08:04:31.533 に答える