在更改事件的JQuery对话框中未显示Tablesorter过滤器

时间:2017-09-02 09:43:36

标签: jquery tablesorter

我在JQuery对话框中使用Tablesorter过滤器。当我第一次打开对话框时,Tablesorter过滤器加载并正常工作。该对话框包含一个下拉列表,当我从此下拉列表中选择值时,对话框将重新加载并显示数据,但Tablesorter过滤器不会显示/可见。

任何人都可以帮我解决这个问题。

由于

var $dialogproperties = $('#dialogs');

$(document).on('change', '#ddl_Com', function (e) {
        e.preventDefault();
        var url = getURL;
        var data1 = getValues();

        url = '@Url.Action("Com_submit")?ID=' + id;

        $.post(url, data1, function (data) {
            //// Open popup dialog box
            var tmp = data.commentdisplay.replace(/\n/g, '<br />');
            $dialogproperties.html('');
            $dialogproperties.dialog({ title: $('#title').text() });
            $dialogproperties.html(tmp);
            $dialogproperties.dialog('open');
        });
        return false;
});

$(function () {
        //// - Dialog box width and height
        var wWidth = $(window).width();
        var dWidth = wWidth * 0.9;
        var wHeight = $(window).height();
        var dHeight = wHeight * 0.9;
        var dialog = "";
        dialog = $("#dialogs").dialog({
            autoOpen: false,
            modal: true,
            width: dWidth,
            height: dHeight,
            fluid: true,
            open: function (event, ui) {
                stopscroll();
                alert('t');

                var $table = $('#tblCom');
                $table.tablesorter({
                    textExtraction: {
                        '.img': function (node) {
                            var $node = $(node);
                            return $node.find('span[title]').attr('title');
                        }
                    },
                    imgAttr: 'title',
                    ignoreCase: false,
                    widthFixed: true,
                    widgets: ["filter", "columnSelector"],
                    widgetOptions: {
                        filter_useParsedData: true,
                        filter_columnFilters: true,
                        filter_ignoreCase: true,
                        filter_defaultAttrib: 'data-value',
                        columnSelector_mediaquery: false
                    }
                });

            },
            close: function (event, ui) {
            }

        });

    });

1 个答案:

答案 0 :(得分:2)

在初始化tablesorter

之前确保HTML已在对话框内呈现的代码
dialog = $("#dialogs").dialog({
  // ...
  open: function (event, ui) {
    stopscroll();
    setTimeout(function() {
      var $table = $('#tblCom');
      $table.tablesorter({
        // ...
      });
    }, 0);
  },
  // ...
});