【问题标题】:table sorter (fork) sticky header not sticky in jquery modal dialog表排序器(fork)粘性标题在 jquery 模态对话框中不粘性
【发布时间】:2016-06-21 16:01:57
【问题描述】:

我正在尝试使用 tablesorters(fork)stickyheaders 在 jquery 模态对话框内的表格上应用粘性标题。

jquery modal 还包含应用于属性的引导样式。

Sticky Header 已创建,我可以通过检查 HTML 和屏幕进行检查,但它会随着表格的滚动而不断向下滚动。

似乎是一些 CSS 问题,但我不知道它到底是什么。

这是jsfiddle

 $(function(){
 var row = '<tr><td><input class="item" type="checkbox"></td><td>00000001</td><td>ABC  265g</td></tr>';
 
 var tbody=$('#itemSearchResults > tbody');
 var i = 0;
 
 $(document).on('click', "#showItemSearchDialog", function () {

        var modalTitle = $('#searchItemNameDialog').attr('title');
        
            $("#searchItemNameDialog").dialog({
                  dragable: true,
                  resizable: false,
                  title: modalTitle,
                  modal: true,
                  closeOnEscape: true,
                  minWidth: 768,
                  maxWidth: 'auto',
                  position: {
                      my: "center top",
                      at: ("center top+" + ($(window).height() * .1)),
                      collision: "none"
                  },
                  open: function (event, ui) {
                    // Will fire when this popup is opened
                    // jQuery UI Dialog widget
                    
                    for(i=1;i<=100;i++){
                    	tbody.append(row);
                    	i++;
                    }
                    
                  $('#itemSearchResults').tablesorter({
                      widgets: ['stickyHeaders'],
                      widgetOptions: {
                          // jQuery selector or object to attach sticky header to
                          stickyHeaders_attachTo: '#itemSearchResultContainer',
                          stickyHeaders_offset: 50
                      }
                  });
        				}
    });

        return false;
    });

    $(document).on('dialogclose', '#searchItemNameDialog', function () {
        $(this).dialog('close').dialog('destroy');
    });
    
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.26.4/js/jquery.tablesorter.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.26.4/js/jquery.tablesorter.widgets.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.css" rel="stylesheet"/>

<div style="max-width: 290px;">
  <div class="input-group input-group-sm input-group-xs">
       <span class="input-group-btn">
            <input name="ItemName" class="form-control" id="itemName" type="text" placeholder="Item Name" value="">
            <button class="btn btn-default" id="showItemSearchDialog" type="button">
              <span class="fa fa-search fa-fw" aria-hidden="true"></span>
            </button>
       </span>
  </div>
</div>


<div id="searchItemNameDialog" class="table-responsive" title="Search - Item" style="display:none">

<div class="container-fluid">
    <form class="form" id="itemSearchForm" method="get" novalidate="novalidate">
        <div class="row">
            <div class="form-group">
                <label class="control-label" for="itemNamePattern">Item Name</label>
                <input name="itemNamePattern" class="form-control success" id="itemNamePattern" style="max-width: 500px;" type="text" placeholder="Item Name" data-toggle="popover" data-placement="right" data-trigger="focus">
            </div>
        </div>
        <div class="row">
            <div class="form-group">
                <button class="btn btn-primary  pull-right" id="searchItemName" type="button"><i class="fa fa-search"></i> Search</button>
            </div>
        </div>
    </form>
    <div class="row">
        <div class="form-group">
            <div class="col-sm-12 col-md-12 error-log">
            </div>
        </div>
    </div>
    <div class="row">
        <div class="table" id="itemSearchResultContainer" style="overflow: auto; -ms-overflow-x: auto; -ms-overflow-y: auto; max-height: 500px;">
            <table class="table table-hover tablesorter" id="itemSearchResults">
                <thead>
                    <tr class="active">
                        <th>
                            <input id="checkAllItems" type="checkbox">
                        </th>
                        <th>
                            Item Number
                        </th>
                        <th>
                            Item Name
                        </th>
                    </tr>
                </thead>
                <tbody>
                </tbody>
            </table>
        </div>
    </div>
    <div class="row">
        <div class="form-group" id="actionButtons">
            <input class="btn btn-primary btn-success pull-left" id="addItemName" type="button" value="Add Selection">

            <input class="btn btn-primary btn-success pull-right" id="replaceItemName" type="button" value="Replace Selection">
        </div>
    </div>
</div>

</div>

任何帮助将不胜感激。

【问题讨论】:

    标签: jquery twitter-bootstrap jquery-ui tablesorter


    【解决方案1】:

    #itemSearchResultContainer 定义中缺少 position:relative (demo)

    #itemSearchResultContainer {
        position: relative;
        overflow: auto;
        -ms-overflow-x: auto;
        -ms-overflow-y: auto;
        max-height: 500px;
    }
    

    【讨论】:

      猜你喜欢
      • 2020-10-27
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-19
      相关资源
      最近更新 更多