0

我正在为管理员审查提交的目标的应用程序页面工作。每个目标都是<tr>3 个不同表格中的一个。“review”、“complete”和“submitted”是三个表。

每个都有一个 btn 组,<tr>可以根据当前的状态选择批准、恢复或拒绝。当状态改变时,包含的目标被删除并附加到适当的表中。

当它移动 btn-group 下拉列表然后停止工作。我认为它可能需要在.dropdown();附加后添加,但我无法使其工作。

不确定如何使用服务器端数据的这个 b/c 设置 JSfiddle。有人对我有什么建议吗?

这是一个包含我所有当前代码的 JSfiddle:http: //jsfiddle.net/xKLN4/

    approve: function(clicked) {
        var id = clicked.attr('data-id');
        $.post('<?=URL::to('supervisor/approve_objective')?>',{
            'id' : id,
            'trainee_id' : '<?=$trainee->id?>',
            'status' : 'completed' //or whatever it should be, one of 'submitted'|'completed'|'review'
        },
        function(data, textStatus){
            console.log('Post return data:');
            console.log(data);
            var status = data.status_translated;
            var lbl = $('.label-'+data.object.objective_id);
                    lbl.fadeOut('fast');
                    lbl.attr('class','label label-'+data.object.status+' label-'+data.object.objective_id)
                       .text(data.object.status_translated)
                       .fadeIn('fast');
                       clicked.closest('tr').children('td, th')
                               .animate({ padding: 0 })
                               .wrapInner('<div />')
                               .children()
                               .slideUp(function() { $(this).closest('tr').remove(); });

                    var row = clicked.closest('tr').html();

                    $('#approve-objectives-completed > tbody:last').append('<tr>'+row+'</tr>')
                                                                   .children('.dropdown-toggle')
                                                                   .dropdown();


        });


    },

编辑添加代码


由于正在添加的 div,下拉菜单不起作用wrapInner('<div />')

td一种解决方案是在将所有内容复制到新行后删除最后一个 div ...

approve: function(clicked) {

      clicked.closest('tr').children('td, th')
             .animate({ padding: 0 })
             .wrapInner('<div />')
             .children()
             .slideUp(function() { $(this).closest('tr').remove(); });

      var row = clicked.closest('tr').html();

      $('#approve-objectives-completed > tbody:last').append('<tr>'+row+'</tr>')

      //Remove div       
      var $lastTdDiv = $('#approve-objectives-completed > tbody > tr:last > td:last > div');  
      var contents = $lastTdDiv.contents();
      $lastTdDiv.replaceWith(contents);

这是我在“批准”功能中更改的jsFiddle

4

1 回答 1

2

由于正在添加的 div,下拉菜单不起作用wrapInner('<div />')

td一种解决方案是在将所有内容复制到新行后删除最后一个 div ...

approve: function(clicked) {

      clicked.closest('tr').children('td, th')
             .animate({ padding: 0 })
             .wrapInner('<div />')
             .children()
             .slideUp(function() { $(this).closest('tr').remove(); });

      var row = clicked.closest('tr').html();

      $('#approve-objectives-completed > tbody:last').append('<tr>'+row+'</tr>')

      //Remove div       
      var $lastTdDiv = $('#approve-objectives-completed > tbody > tr:last > td:last > div');  
      var contents = $lastTdDiv.contents();
      $lastTdDiv.replaceWith(contents);

这是我在“批准”功能中更改的jsFiddle

于 2012-11-05T21:19:14.060 回答