jQuery Table sorter:停止排序

and*_*riy 8 javascript jquery tablesorter

如果用户点击div表头内部,是否可以停止表排序th

在我的情况下,div具有onClick="resize(e)"我所做的功能:

function resize(e) {
        if (!e) var e = window.event;
        e.stopPropagation();
        ....
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

编辑:表在e.stopPropagation()或之前排序return false

Mot*_*tie 7

我为你做了两个演示.第一个包含在一个span中的表头的内容,第二个使用未记录的onRenderHeader函数来添加span头部内部.无论哪种方式,span在点击内容外部时,只有可点击的内容(文本)将对列进行排序.如果您使用div只有标头填充可用于初始化列排序.

演示1 - 包含在标记中的标题内容

$('table')
    .tablesorter()
    .find('.inner-header')
    .click(function(){
        console.log('header text clicked');
        return false;
    });
Run Code Online (Sandbox Code Playgroud)

演示2 - 使用onRenderHeader选项包装的标题内容

$('table').tablesorter({

    // customize header HTML
    onRenderHeader: function(index) {
        $(this)
            .wrapInner('<span class="inner-header"/>')
            .find('.inner-header')
            .click(function(){
                console.log('header text clicked');
                return false;
            });
    }

});?
Run Code Online (Sandbox Code Playgroud)

如果您需要有关使用该onRenderHeader选项的更多信息,请查看我的博客文章,了解文档中缺少的内容.


ben*_*een 5

我刚遇到这个问题.我尝试了所有建议,包括直接将非委托事件处理程序分配给我想要的精确元素,然后停止所有传播+事件本身.仍然没有运气.

但是......结果是jQuery tablesorter为mouseup事件分配了一个事件,而不是click事件(正如你所期望的那样!).因此,为了防止tableort做这件事,你只需要取消该事件.希望这可以帮助.