0

从服务器获取列表并附加到<ul>我无法<li>以绝对方式获取 id

从服务器获取:

$('#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的 's on,而不是绑定到单个元素。按如下方式更新您的绑定:

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